Sometimes you will have to play with numbers, BIG numbers… Or teeny-tiny ones! To avoid having too many zeros you can use the SI prefixes (like metric units: mm, cm, m, km, …).

Here are the results of our code:

```            123,460000 ->       123,460  w (1000)
123,460000 ->       123,460  w (1024)
1.234,560000 ->         1,235 kw (1000)
1.234,560000 ->         1,206 kw (1024)
123.456,000000 ->       123,456 kw (1000)
123.456,000000 ->       120,563 kw (1024)
1.234.567,000000 ->         1,235 Mw (1000)
1.234.567,000000 ->         1,177 Mw (1024)
12.345.678,000000 ->        12,346 Mw (1000)
12.345.678,000000 ->        11,774 Mw (1024)
0,012300 ->        12,300 mw (1000)
0,012300 ->        12,595 mw (1024)
0,000012 ->        12,300 µw (1000)
0,000012 ->        12,897 µw (1024)
```

And here is the helper:

```static void Main(string[] args)
{
var unit = "w"; // To denote we are measuring "wathever"

foreach (var example in new[] { 123.46, 1234.56, 123456, 1234567, 12345678, 0.0123, 0.0000123 })
{
foreach (var groupWeight in new[] { 1000 /* Decimal*/, 1024 /* Binary */ })
{
Console.WriteLine("{0,22:#,##0.000000} -> {1,16} ({2,4})",
example, Format(example, unit, groupWeight), groupWeight);
}
}
}

static string Format(
double number,
string unitSymbol,
int groupWeight = 1000,
string unitMultipliers = " kMGT",
string unitDivider = " mµnp")
{
string formatted = null;
var numberWeigth = (int)Math.Floor(Math.Log(number) / Math.Log(groupWeight));
Nullable<char> unitWeigthSymbol = null;

if (numberWeigth > 0)
{
numberWeigth = Math.Min(numberWeigth, unitMultipliers.Length - 1);
unitWeigthSymbol = unitMultipliers[numberWeigth];
}
else
{
numberWeigth = -Math.Min(Math.Abs(numberWeigth), unitDivider.Length - 1);
unitWeigthSymbol = unitDivider[-numberWeigth];
}

number = number / Math.Pow(groupWeight, numberWeigth);
formatted = string.Format("{0:0.000} {1}{2}", number, unitWeigthSymbol, unitSymbol);

return (formatted);
}
}```

Now if you need to specify the decimal separator as a dot or as a coma, please have a look at this article.

Happy coding^9 !  😉