所谓有鬼 其实是人们心中有个鬼

让我帮你画个符吧

你还在用toFixed来进行四舍五入么?

之前一直在用这个js自带的toFixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。

比如
Javascript代码
  1. var money=0.00542;//0.006;  
  2. alert(Number(money).toFixed(2));  
  3. //0.00  
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); //0.00 


可以看出上面的结果是错误的,下面的方法通过巧妙的使用Math.round函数,完全可以解决数值很小时的精度问题。

Javascript代码
  1. var money=0.00542;//0.006;  
  2. alert(Number(money).toFixed(2));  
  3.   
  4. function round2(number,fractionDigits){  
  5.     with(Math){  
  6.         return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);  
  7.     }  
  8. }  
  9. alert(round2(money,2));//0.01  
var money=0.00542;//0.006; alert(Number(money).toFixed(2));  function round2(number,fractionDigits){ 	with(Math){ 		return round(number*pow(10,fractionDigits))/pow(10,fractionDigits); 	} } alert(round2(money,2));//0.01 


round 方法
返回与给出的数值表达式最接近的整数。

Math.round(number)

必选项 number 参数是要舍入到最接近整数的值。

说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。

posted on 2010-08-19 12:25  鬼话符  阅读(293)  评论(0)    收藏  举报

导航