print(((10659.32 - 10000) * 100))
print((10659.33 - 10000) * 100)
print((10659.34 - 10000) * 100)
print((10659.35 - 10000) * 100)
print((10659.32 * 100 - 10000 * 100) * 1)
print((10659.33 * 100 - 10000 * 100) * 1)
print((10659.34 * 100 - 10000 * 100) * 1)
print((10659.35 * 100 - 10000 * 100) * 1)
65931.99999999997
65933.0
65934.00000000001
65935.00000000003
65932.0
65933.0
65934.0
65935.0
在我看来,前一个是浮点*整数,后一个变成了是整数相减的运算。
浮点数在运算后,内部会执行类似 result = (int)result的函数,来判断是否将浮点数修改为整数吗?
有点懵,求指教。谢谢
不会。
忠实地按照表达式提升数据类型做运算。
不要试图评价不同途径算出来的浮点数为什么不完全一致。差值小于eps的两个值你就可以认为是相等的。
另外你这个不但是浮点数的精度问题,还有打印的精度问题。记住,浮点数领域不能要求绝对相等。