我想显示一个数字到小数点后2位。

我想我可以在JavaScript中使用toPrecision(2)。

但是,如果这个数字是0.05,我得到0.0500。我宁愿它保持不变。

在JSbin上可以看到。

最好的方法是什么?

我可以想到编写一些解决方案,但我想象(我希望)像这样的东西是内置的?


当前回答

你可以用toFixed函数来做,但它在IE中有bug。如果你想要一个可靠的解决方案,看看我的答案。

其他回答

我不知道我是怎么想到这个问题的,但即使这个问题已经问了很多年了,我想补充一个我遵循的快速而简单的方法,它从来没有让我失望:

var num = response_from_a_function_or_something();

var fixedNum = parseFloat(num).toFixed( 2 );
float_num = parseFloat(float_num.toFixed(2))

我做了这个函数。它工作正常,但返回字符串。

function show_float_val(val,upto = 2){
  var val = parseFloat(val);
  return val.toFixed(upto);
}
float_num.toFixed(2);

注意:如果需要,toFixed()将四舍五入或填充零以满足指定的长度。

let a = 0.0500
a.toFixed(2);

//output
0.05