为了账号安全,请及时绑定邮箱和手机立即绑定

格式数字要始终显示小数点2位

格式数字要始终显示小数点2位

素胚勾勒不出你 2019-06-06 15:09:07
格式数字要始终显示小数点2位我想格式化我的数字,总是显示2位小数点,四舍五入的情况下适用。例子:number     display------     -------1          1.001.341      1.341.345      1.35我一直在用这个:parseFloat(num).toFixed(2);但它在显示1如1,而不是1.00.
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

这在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>

注意它会小数点到2位,所以输入1.346会回来1.35.


查看完整回答
反对 回复 2019-06-06
?
智慧大石

TA贡献1946条经验 获得超3个赞


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>


查看完整回答
反对 回复 2019-06-06
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

这个答案如果value = 1.005.

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

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

@Kon和原始作者建议的更干净的代码:

Number(Math.round(parseFloat(value + 'e' + decimalPlaces)) + 'e-' + decimalPlaces)

贷记:JavaScript中的四舍五入小数


查看完整回答
反对 回复 2019-06-06
  • 3 回答
  • 0 关注
  • 676 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信