Javascript数字格式化

Javascript Number Formatting

本文关键字:格式化 数字 Javascript      更新时间:2023-09-26

这当然是一个愚蠢的问题,请原谅。我的客户希望用五位数字显示十进制数字。例如:100.34或37.459。我用val.toPrecision (5);完成了这个;然而,当我的数字变得很小的时候,我就得不到我想要的了。例如,如果我的数字是0.000347,它显示0.00034700。现在,我明白为什么它会这样做,但我不知道的是如何让它显示0.0003。任何想法吗?

Math.round(0.000347 * 1e4) / 1e4

或与toFixed:

Number.prototype.toNDigits = function (n) {
    return (Math.abs(this) < 1) ?
        this.toFixed(n - 1) :
        this.toPrecision(n);
};
http://jsfiddle.net/HeQtH/6/

我们的问题显然是小于1的数字。因此,捕获它们并分别处理

function SetPrecisionToFive(n){  
    return (n > 1) ? n.toPrecision (5) : (Math.round(n * 1e4) / 1e4).toString();
}

您可以使用toFixed方法来完成此操作。例如:(0.000347).toFixed(4)

Javascript的toFixed()函数会将小数截断为固定的十进制精度,例如:

var num = .0000350;
var result = num.toFixed(5); // result will equal .00003