`toFixed()`对某些数字不能正常工作

时间:2011-11-28 08:49:40

标签: javascript

Number#toFixed()对某些数字无效。 例如: -

7.795.toFixed(2) 
//-> 7.79                  #Instead it should display 7.80

8.895.toFixed(2)
//-> 8.89                  #Instead it should display 8.90

1.105.toFixed(2) 
//-> 1.10                  #Instead it should display 1.11

55.305.toFixed(2) 
//-> 55.30                 #Instead it should display 55.31

请为我提供解决此问题的方法。

2 个答案:

答案 0 :(得分:2)

function round_float(x,n){
  if(!parseInt(n))
    var n=0;
  if(!parseFloat(x))
    return false;
  return Math.round(x*Math.pow(10,n))/Math.pow(10,n);
}
round_float(1.105,2).toFixed(2);

//结果:1.11

答案 1 :(得分:1)

这不是jQuery错误,这是默认Javascript的行为。

解决方案可以是:

(Math.round(55.305 * 100) / 100) = 55.31