我需要在JavaScript中将数字格式化为两个小数位。为了做到这一点,我使用toFixed方法,它可以正常工作。
但是,在没有任何小数位的情况下,它不应该显示小数点。
例如,10.00应该是10,而不是10.00。
我需要在JavaScript中将数字格式化为两个小数位。为了做到这一点,我使用toFixed方法,它可以正常工作。
但是,在没有任何小数位的情况下,它不应该显示小数点。
例如,10.00应该是10,而不是10.00。
.toFixed()
将结果转换为字符串,
因此您需要将其转换回数字:
parseFloat( num.toFixed(2) )
或者只需使用一元+
+num.toFixed(2)
两者都会给出以下结果:
// 15.00 ---> 15
// 15.20 ---> 15.2
如果你只想去掉“.00”的情况,那么你可以使用字符串操作的 .replace()
方法。
num.toFixed(2).replace('.00', '');
注意:以上操作将把您的Number
转换为String
。
var num1 = 10.1;
var num2 = 10;
var tofixed = Number.prototype.toFixed;
Number.prototype.toFixed = function(precision)
{
var num = this.valueOf();
if (num % 1 === 0)
{
num = Number(num + ".0");
}
return tofixed.call(num, precision);
}
console.log(num1.toFixed(2));
console.log(num2.toFixed(2));
+(num.toFixed(2))
更省事儿。;-) - RobGnum.toFixed(2).split('.00', 1)
。 - Xotic750num.toFixed(2).split('.00')[0]
吗?还有一个方法是num.toFixed(2).replace('.00','')
。 - RobGjsFiddle
。使用limit
参数的split
。 - Xotic750.00
。 - RobG