Javascript数字格式

时间:2011-07-08 15:10:51

标签: javascript

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

4 个答案:

答案 0 :(得分:5)

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 :(得分:2)

我们的问题是数字小于1显然。所以抓住他们并单独处理它们

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

答案 2 :(得分:1)

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

答案 3 :(得分:-1)

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

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