如何将javascript中的数字格式化为两位小数?

时间:2015-01-10 12:31:38

标签: javascript

我需要在javascript中将数字格式化为两位小数。为了做到这一点,我使用toFixed方法,它正常工作。

但是在数字没有任何小数位的情况下,它不应该显示小数点

e.g。 10.00应该只有10而不是10.00。

2 个答案:

答案 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));

Fiddle。这是thisthis帖子的混合。