我正在做一个c#程序。我必须做一个简单的数学运算。

72057594037927936.0 - 255.0 = .....


两个数字都是双倍...我得到

72057594037927680.0


代替

72057594037927681.0


谁能解释一下我怎么可能?

谢谢

最佳答案

减法的确切结果,

72057594037927681 = 0xffffffffffff01


需要56位精度,但double只有53位,因此结果四舍五入到最接近的可表示数字。

关于c# - C#中的奇怪减法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17581784/

10-17 01:13