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

新手上路,请多包涵

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

例子:

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

我一直在使用这个:

parseFloat(num).toFixed(2);

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

原文由 Varada 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 751
2 个回答
(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>

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

原文由 drudge 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 document.getElementById('line1').innerHTML = Number(1).toFixed(2);
document.getElementById('line2').innerHTML = Number(1.341).toFixed(2);
document.getElementById('line3').innerHTML = Number(1.345).toFixed(2);
document.getElementById('line4').innerHTML = Number(1.3450001).toFixed(2);
 <span id="line1"></span>
<br/>
<span id="line2"></span>
<br/>
<span id="line3"></span>
<br/>
<span id="line4"></span>

原文由 Abel ANEIROS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题