Math.round()控制小数位不起作用

时间:2012-12-09 14:55:18

标签: javascript formatting

我想在下面的代码中舍入到两位小数,但是,在很多情况下,控制小数位数的Math Round方法对我来说不起作用。

   var newKitAmount = 1;
   var priceNumber =  168;
   var updatedTotal = Math.round(priceNumber * newKitAmount*100)/100;
   alert("total is : " + updatedTotal); //OUTPUTS 168 instead of 168.00

生成的输出:168

所需的输出:168.00

示例二:5 * 2 = 10

所需的输出:10.00

JS Fiddle

我做错了什么?我该如何解决?

2 个答案:

答案 0 :(得分:8)

如果您想在字符串中的点后面获得固定的位数,则应使用toFixed

var updatedTotal = (priceNumber * newKitAmount).toFixed(2);

答案 1 :(得分:1)

你应该使用一个函数来舍入,因为Firefox和Chrome之间的差异不会与toFixed相同的方式...

function toFixed(a,b){ //where a is the number and b is the number of decimals
    var m = Math.pow(10,b);
    return Math.round(parseFloat(a)*m)/m;
}