我对Java中的数学有一些疑问/疑问,所以我制作了一个小程序的屏幕快照,您可以在以下链接中查看该屏幕快照:
http://www.imageshuffle.com/view.php?filename=73doublevsfloat.jpg
这样的数字怎么可能?
不管您如何看待f / i
都应该是0.0155
不管您如何看待i * f
都应该是155
i + f
应该是101.55
i - f
应该是98.45
等。双。
那有什么呢?为什么Java中的数学如此不正确?
最佳答案
发生这种情况是因为i /= f
修改了i
:它等效于i = i / f
(加上四舍五入)。
因此,当您执行f / i
时,i
是〜65而不是100。