我想格式化我的数字,总是显示2小数点后,四舍五入适用的地方。

例子:

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

我一直在用这个:

parseFloat(num).toFixed(2);

但是它把1显示为1,而不是1.00。


当前回答

好消息! ! 似乎javascript的新版本ES2020(我只是使用)提供了这个函数的新行为。

let ff:number =3
console.info(ff.toFixed(2)) //3.00

根据需要。

其他回答

为了获得最精确的舍入,创建这个函数并使用它舍入到小数点后2位:

功能轮(价值,十进制)( return编号(数学。(价值+ e +十进制)+ e-' +十进制)。 ) log(“seeked to”+ round(1,005,2));

> 1.01

感谢Razu、这篇文章和MDN的数学。圆的参考。

我是这样解决问题的:

parseFloat(parseFloat(floatString).toFixed(2));

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat

变量数= 123456.789; console.log(纽约肯尼迪机场。NumberFormat(’en-IN’} maximumFractionDigits: 2 })的葡萄酒种植区(编号);

如果你已经在使用jQuery,你可以看看如何使用jQuery数字格式插件。

该插件可以返回格式化的数字作为字符串,你可以设置小数,和千位分隔符,你可以选择显示的小数的数量。

$.number( 123, 2 ); // Returns '123.00'

你也可以从GitHub获得jQuery数字格式。

var num1 = “0.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); 跨度 { 边框:1px 实心 #000; 边距:5px; 填充:5px; } <span id=“num1”></span> <span id=“num2”></span> <span id=“num3”></span>