Makes writing numeric types as a formatted number much easier. Here it is set for double types:
void Main() { Console.WriteLine(1234.567.ToFixedDpFormat(2)); // => 1234.57 Console.WriteLine(1234.567.ToNumSigDigitsFormat(3)); // => 1.23E+03 Console.WriteLine(1234.567.ToCulturalFormat(2)); // => 1,234.57 Console.WriteLine(1234.567.ToCurrencyFormat()); // => £1,234.57 Console.WriteLine(1234d.ToFixedDpFormat(2)); // => 1234.00 Console.WriteLine(1.2340.ToNumSigDigitsFormat(3)); // => 1.23 Console.WriteLine(123445677.345234.ToCulturalFormat(2));// => 123,445,677.35 Console.WriteLine(1234345.567.ToCurrencyFormat()); // => £1,234,345.57 } namespace Common.Extensions.DoubleToStringFormatting { public static class DoubleToStringExtensions { public static string ToFixedDpFormat(this double number, int numDP = 0) { var res = number.ToString($"F{numDP}"); // ToFixedDpFormat(1234.567,2) (en - US) -> 1234.57 return res; } public static string ToNumSigDigitsFormat(this double number, int numSigDig = 3) { var res = number.ToString($"G{numSigDig}"); // ToNumSigDigitsFormat(123.4546) en-US -> 124.0 return res; } // Prettifies the string according to cultural aesthetics and the specified num of DP public static string ToCulturalFormat(this double number, int numDP = 2) { var res = number.ToString($"N{numDP}"); return res; } // Converts to a currency (using the default cultural currency sign) public static string ToCurrencyFormat(this double number, int numDP = 2) { var res = number.ToString($"C{numDP}"); // ToCurrencyFormat(123.456), en-US -> $123.46 return res; } } }Something similar can be used for float,decimal and int types as well.