javascript - 将数字格式化为始终显示 2 位小数

标签 javascript floating-point number-formatting

我想将我的数字格式化为始终显示 2 位小数,并在适用的情况下四舍五入。

例子:

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

我一直在用这个:

parseFloat(num).toFixed(2);

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

最佳答案

(Math.round(num * 100) / 100).toFixed(2);

现场演示

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

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

var num3 = "1.345";
document.getElementById('num3').innerHTML = (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>

请注意,它将四舍五入到小数点后两位,因此输入 1.346 将返回 1.35

关于javascript - 将数字格式化为始终显示 2 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134039/

相关文章:

javascript - 使用 javascript 设置文件输入的值

javascript - 使用对象复制数组的最佳实践

jquery - 使用 jQuery 和正则表达式在数字输入中使用千位分隔符

javascript - 切换 CSS Javascript 函数

c - 将打印浮点值转换为分数的程序不起作用..?

java - 为什么 Oracle 声称 java.util.Random.nextFloat() 生成 2^24 种可能性而不是 2^23 种?

python - 浮点计算和控制流

jsf-2 - f:convertNumber删除逗号作为千位分隔符

C#数据表中的数字格式

document.write() 的 JavaScript 替代方案