自从玩了java,十以内的加减法都不会了!大佬快来看看呐!如图所示,那位大佬讲一下这是什么原因导致的!

图片说明

道理很简单,123.123用二进制表示,是无法精确表示的。
它等于1111011.00011111011111001110110110010001011010000111011011001000101101000011101...
所以,用double表示,只能表示为一个近似数,当你将这个数再做了很多四则运算以后,这个误差就会放大。最后的结果就有微小的误差。

底层精度问题,你输入5.123.把每个a打出来看看