public static void Main()
Console.WriteLine("Rounded result: " + RoundToSignificantDigits(3.82));
Console.WriteLine("Rounded result: " + RoundToSignificantDigits(38.2));
Console.WriteLine("Rounded result: " + RoundToSignificantDigits(382));
public static double RoundToSignificantDigits(double value, int digits = 2)
double scale = Math.Pow(10, Math.Floor(Math.Log10(value)));
return Math.Round(scale * Math.Round(value / scale, digits - 1, MidpointRounding.AwayFromZero), 0);