在书本第166页的例9.5中,用Math.round()方法,(1)将参数3.4加上0.5后返回最接近的整数时,3.4+0.5=3.9再取最接近的整数结果返回值应该是4,为什么结果是3?(2)同(1),将参数5.2加上0.5后返回最接近的整数并强制将结果转换为长整型时,5.2+0.5=5.7结果应该是6,为什么是5?(如图)
(1)你的代码中没有体现这个问题,运行结果就是4。
(2)你的代码并没有计算5.2+0.5,你直接用5.2做round()参数,结果就是5。API里说明的很清楚,会按照(long)Math.floor(a + 0.5d)公式进行计算。