2017-10-21 23 views
-6

这更多的是一个理论问题,但为什么这个代码片段凑到最接近的0.05?为什么Math.round(1.53 * 20)/ 20 = 1.55?这实际上是如何工作的?

Math.round(1.53*20)/20 

Math.round(1.53)为2。Math.round(1.53)/ 20为0.1。然后

Math.round(1.53*20)/20 

是神奇1.55。有没有更多的数学方法来理解这一点?

+4

你的意思是'数学。圆(1.53 * 20)/ 20'?这会给出结果'1.55',但是你给出的表达式不会。 –

+1

'Math.round(1.53/20)/ 20'给我0.你从哪里得到1.55? – agrm

+1

你的代码返回(预期)**'0' **。 –

回答

1

Math.round()所描述的here

为了您输入Math.round(1.53*20)/20它会先计算1.53*20答案将返回最接近的整数值是30.6然后,你的表达式变为

Math.round(30.6)/20 

Math.round(30.6)该结果后是31(最接近整数) 然后你的语句就变成了31/20这就是1.55