我需要在javascript中将数字格式化为两位小数。为了做到这一点,我使用toFixed方法,它正常工作。
但是在数字没有任何小数位的情况下,它不应该显示小数点
e.g。 10.00应该只有10而不是10.00。
答案 0 :(得分:9)
.toFixed()
将您的结果转换为字符串,
所以你需要将其归还一个数字: jsBin demo
parseFloat( num.toFixed(2) )
或只使用一元+
+num.toFixed(2)
两者都会提供以下内容:
// 15.00 ---> 15
// 15.20 ---> 15.2
如果你只想摆脱.00
案例,那么你可以使用.replace()
进行字符串操作
num.toFixed(2).replace('.00', '');
注意:以上内容会将您的Number
转换为String
。
答案 1 :(得分:4)
作为将此更改全局化的替代方法(当然,如果您需要),请尝试以下方法:
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));