C#中的双重类型精度



我在c#

中具有此代码
double result = 480 - 460.8;

为什么结果为199999999999989,而不是19.2?

您应该格式化result输出的双重精度:

double result = 480 - 460.8; 
String.Format("{0:0.##}", result);

测试示例:

https://ideone.com/27OFP4

更新:

有另一种方法而无需字符串格式,您可以使用十进制之后的两个数字的方法Math.Round

Math.Round(result,2);

示例:

https://ideone.com/2q6rpd

最新更新