在距离公式中四舍五入到小数点后 3 位

Rounding to 3 decimal places in a distance formula

我需要四舍五入到小数点后三位。我不确定如何准确实施 Math.Round。这是我目前所拥有的:

double distance= Math.Sqrt(deltax + deltay);
Math.Round((decimal)distance, 3);
Console.WriteLine("Distance :" + distance);

使用 Math.Round 的 return 值(Uwe Keim 已经注明)并删除十进制转换。

double distance = Math.Sqrt(10.438295 + 10.4384534295);
Console.WriteLine("Distance :" + Math.Round(distance, 3));

不要使用 Math.Round() 对其进行舍入,在输出字符串格式化程序中对其进行舍入:

double distance = Math.Sqrt(deltax + deltay);
Console.WriteLine("Distance :{0:f3}", distance);

您几乎不想使用 Math.Round() 格式化输出。

原因是,如果您将输出格式化为小数点后 3 位,您通常希望显示尾随零以指示您正在显示多少 DP。

例如给定

double x = 0.1;

然后

double rounded = Math.Round(x, 3);
Console.WriteLine(rounded);

会显示0.1,而

Console.WriteLine("{0:f3}", x);

将显示 0.100,它会立即告诉用户它已四舍五入为 3 dps。

如果您想从输出中删除尾随零,那么您可以使用Math.Round(),但我会使用###字符串格式化程序:

Console.WriteLine("{0:0.###}", x);

这会将 1.2345 输出为 1.235,将 1.0 输出为 1