我有浮动数字:
var a = parseFloat("12.999");
var b = parseFloat("14");
我希望将它们显示为:
12.99
14.00 -> with zeros
但没有圆形,只有截断。怎么做?
答案 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()将使用设定的小数位格式化输出。
大多数语言都有round
,ceil
,floor
或类似的函数,但几乎所有语言都舍入到最接近的整数,因此乘法 - 舍入链< em>(或舍入 - 舍入乘以舍入到数十,数百,数千......)是一个很好的模式。
答案 1 :(得分:0)
您可以先截断部件,但不需要。
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;