public static void Main()
double d = 999999999999999;
Console.WriteLine(d.TruncateToSignificantDigits(3));
Console.WriteLine(d.TruncateToSignificantDigits(3));
public static class Extensions
public static double TruncateToSignificantDigits(this double d, int digits){
double scale = Math.Pow(10, Math.Floor(Math.Log10(Math.Abs(d))) + 1 - digits);
return scale * Math.Truncate(d / scale);