我要舍1.006
到兩位小數預期1.01作爲輸出Math.round舍入誤差
當我做
var num = 1.006;
alert(Math.round(num,2)); //Outputs 1
alert(num.toFixed(2)); //Output 1.01
同樣,
var num =1.106;
alert(Math.round(num,2)); //Outputs 1
alert(num.toFixed(2));; //Outputs 1.11
因此
- 每次都使用toFixed()是否安全?
- 是要修復()跨瀏覽器投訴嗎?
請給我建議。
P.S:我試着尋找類似的答案堆棧溢出,但無法得到正確的答案。
EDIT:
爲什麼1.015
收益1.01凡爲1.045
收益1.05
var num =1.015;
alert(num.toFixed(2)); //Outputs 1.01
alert(Math.round(num*100)/100); //Outputs 1.01
凡爲
var num = 1.045;
alert(num.toFixed(2)); //Outputs 1.04
alert(Math.round(num*100)/100); //Outputs 1.05
'Math.round'四捨五入到最接近的整數。 – Jrod 2013-02-27 17:45:33
@Jrod:如果你參考[這個小提琴](http://jsfiddle.net/_Sud/qmRyU/)它也輸出十進制值 – Sudarshan 2013-02-27 17:47:06
@nlsbshtr:感謝指出它,你能檢查我的編輯,並幫助我的第二個問題 – Sudarshan 2013-02-27 17:56:30