格式编号始终显示2位小数

我想将我的号码格式化为始终显示2位小数,并在适用的位置舍入。

例子:

number     display
------     -------
1          1.00
1.341      1.34
1.345      1.35

我一直在使用这个:

parseFloat(num).toFixed(2);

但它将1显示为1 ,而不是1.00


这在FF4中正常工作:

parseFloat(Math.round(num3 * 100) / 100).toFixed(2);

现场演示

var num1 = "1";
document.getElementById('num1').innerHTML = parseFloat(Math.round(num1 * 100) / 100).toFixed(2);

var num2 = "1.341";
document.getElementById('num2').innerHTML = parseFloat(Math.round(num2 * 100) / 100).toFixed(2);

var num3 = "1.345";
document.getElementById('num3').innerHTML = parseFloat(Math.round(num3 * 100) / 100).toFixed(2);
span {
    border: 1px solid #000;
    margin: 5px;
    padding: 5px;
}
<span id="num1"></span>
<span id="num2"></span>
<span id="num3"></span>

Number(1).toFixed(2);         // 1.00
Number(1.341).toFixed(2);     // 1.34
Number(1.345).toFixed(2);     // 1.34 NOTE: See andy's comment below.
Number(1.3450001).toFixed(2); // 1.35

如果value = 1.005此答案将失败。

作为更好的解决方案,可以通过使用以指数表示法表示的数字来避免舍入问题:

Number(Math.round(1.005+'e2')+'e-2').toFixed(2); // 1.01

学分:JavaScript中四舍五入的小数

链接地址: http://www.djcxy.com/p/13555.html

上一篇: Format number to always show 2 decimal places

下一篇: How to print a number with commas as thousands separators in JavaScript