如何格式化浮点数?

时间:2016-02-17 11:57:52

标签: javascript

我有浮动数字:

var a = parseFloat("12.999");
var b = parseFloat("14");

我希望将它们显示为:

12.99
14.00 -> with zeros

但没有圆形,只有截断。怎么做?

2 个答案:

答案 0 :(得分:6)

您使用Math.floor()Number.prototype.toFixed()函数like this的组合:

console.log((Math.floor(a * 100) * 0.01).toFixed(2));
console.log((Math.floor(b * 100) * 0.01).toFixed(2));

Math.floor()会将值截断为最接近的较低整数。这就是为什么你需要先乘以100再乘以0.01。

Number.prototype.toFixed()将使用设定的小数位格式化输出。

大多数语言都有roundceilfloor或类似的函数,但几乎所有语言都舍入到最接近的整数,因此乘法 - 舍入链< em>(或舍入 - 舍入乘以舍入到数十,数百,数千......)是一个很好的模式。

答案 1 :(得分:0)

您可以先截断部件,但不需要。

&#13;
&#13;
function c(x, p) {
    return ((x * Math.pow(10, p) | 0) / Math.pow(10, p)).toFixed(p);
}

document.write(c(12.999, 2) + '<br>');
document.write(c(14, 2));
&#13;
&#13;
&#13;