在距离公式中四舍五入到小数点后 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
。
我需要四舍五入到小数点后三位。我不确定如何准确实施 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
。