0
我正在處理的一個簡單問題是花費一些時間在幾秒鐘內運行300米,並將它們轉換爲字符串以便讀取「9:99.99」。爲了得到秒,我執行以下操作MOD:如何在JavaScript中使MOD正確返回小數?
sec = result % 60;
這並不如預期工作,除非小數部分爲0.5(即60.5,75.5等)。其他任何小數都會給我一個結果,因爲需要12位以上的有效數字來表示。
例如,64.55%60給我4.5499999999999997作爲結果。
我知道一個簡單的解決方案是將小數點分開,並將結果與小數點連接起來,但這只是讓我感興趣。我做錯了什麼,有沒有一種好方法可以單獨使用MOD來解決這個問題?
通常,浮點數不能準確地轉換。 64.55內部將是64.54999999或類似的。如果你需要2位精度,然後嘗試'(6455%6000)/ 100)' – 2013-05-09 15:23:54
閱讀原因:http://stackoverflow.com/questions/588004/is-javascripts-floating-point-math-broken – epascarello 2013-05-09 15:23:58
有趣..我已經編程了大約10年,我認爲這可能是我第一次需要在浮點上做MOD。所有其他語言是否受到相同的限制,還是僅限於Javascript的問題? – Ryan 2013-05-09 15:28:13