JavaScript 浮點數運算問題!!


JavaScript 小數點後的計算問題!!

 

在JavaScript用算 4.1*100,其結果會變成 409.99999999999994….,這是JS’s bug,而我則是會用以下方是取得我要的小數點位置:
var sh = Math.pow(10 , 2); //我要取德小數點後二位
i = Math.round(i * sh) / sh;//再將數字作運算即可
OR
i = Math.round(i * 100) / 100;//直接打上要的位數也可

不過我是建議相乘時盡量以3的倍數的0來作移位較好,例如: i*1000/1000, i*1000000/1000000。

主要是先轉成整數作運算後再變成小數值,切勿直接用小數作運算以免出錯!

不過當用小數點來作迴圈判斷就麻煩了
EX:for(i=0; i<=10; i+=0.01)=>這樣i是不會出現10喔!
目前我是改成 for(i=0; i<=10+0.01; i+=0.01) 這樣的方式來克服的!

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>