I need to convert a decimal number to formatted string with thousand groups and unlimited (variable) decimal numbers:
1234 -> "1,234"
1234.567 -> "1,234.567"
1234.1234567890123456789 -> "1,234.1234567890123456789"
I tried String.Format("{0:#,#.#}", decimal), but it trims any number to max 1 decimal place.
You can use # multiple times (see Custom Numeric Format Strings):
Or, if you’re just formatting a number directly, you can also just use decimal.ToString with the format string.
However, there is no way to include “unlimited decimal numbers”. Without a library supporting arbitrary precision floating point numbers (for example, using something like BigFloat from Extreme Numerics), you’ll run into precision issues eventually. Even the decimal type has a limit to its precision (28-29 significant digits). Beyond that, you’ll run into other issues.