2017-10-21 21 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