我正在做一个c#程序。我必须做一个简单的数学运算。
72057594037927936.0 - 255.0 = .....
两个数字都是双倍...我得到
72057594037927680.0
代替
72057594037927681.0
谁能解释一下我怎么可能?
谢谢
最佳答案
减法的确切结果,
72057594037927681 = 0xffffffffffff01
需要56位精度,但
double
只有53位,因此结果四舍五入到最接近的可表示数字。关于c# - C#中的奇怪减法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17581784/