我想把1.006
保留两位小数,预计输出结果为1.01
我尝试过如下方法:
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()安全吗?
- toFixed()跨浏览器兼容吗?
请给我建议。
P.S: 我尝试在stackoverflow上搜索类似的答案,但没有得到正确的答案。
编辑:
为什么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
四舍五入到最近的整数。 - Jared1.015*100
得到的是101.49999999999999
而不是101.5
,导致它向下舍入而不是向上舍入。 - jbabey