C#中的double型精度

Elh*_*far -1 c# double types

我在C#中有此代码

double result = 480 - 460.8;
Run Code Online (Sandbox Code Playgroud)

为什么结果是19.199999999999989而不是19.2?

Ogh*_*hli 5

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

double result = 480 - 460.8; 
String.Format("{0:0.##}", result);
Run Code Online (Sandbox Code Playgroud)

测试示例:

https://ideone.com/27OfP4

更新:

没有字符串格式的另一种方法是,您可以使用Math.Round小数点后两位数字的方法:

Math.Round(result,2);
Run Code Online (Sandbox Code Playgroud)

例:

https://ideone.com/2Q6RPD