<分区>
结果一定是 806603.77 但为什么我得到 806603.8 ?
float a = 855000.00f;
float b = 48396.23f;
float res = a - b;
Console.WriteLine(res);
Console.ReadKey();
标签 c#
<分区>
结果一定是 806603.77 但为什么我得到 806603.8 ?
float a = 855000.00f;
float b = 48396.23f;
float res = a - b;
Console.WriteLine(res);
Console.ReadKey();
最佳答案
你应该使用 decimal相反因为 float具有 32 位
和 7 位 精度,这就是结果不同的原因,另一方面 decimal
具有 128 位
,精度为 28-29 位。
decimal a = 855000.00M;
decimal b = 48396.23M;
decimal res = a - b;
Console.WriteLine(res);
Console.ReadKey();
输出:806603.77
关于c# - float 错误计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429487/