浮点数四舍五入方法

开发财务方面需求表单的时候,在数字计算上多为float,因此涉及到四舍五入的处理,将收集到的资料整理了一下

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

比如

 

var money=0.00542;//0.006;  
alert(Number(money).toFixed(2));  
//0.00  

  

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

 

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 的最大整数。

===================================================================================================================

JS保留小数点,四舍五入

function returnFloat0(value) {  //将小数点清零
    value = Math.round(parseFloat(value));
    return value;
   }

function returnFloat1(value) { //保留一位小数点
    value = Math.round(parseFloat(value) * 10) / 10;
    if (value.toString().indexOf(".") < 0)
     value = value.toString() + ".0";
    return value;
   }

function returnFloat(value){  //保留两位小数点
    value = Math.round(parseFloat(value) * 100) / 100;
    if (value.toString().indexOf(".") < 0) {
     value = value.toString() + ".00";
    }
    return value;
   }

function returnFloat2(value) { //保留两位小数点,一位小数自动补零
    value = Math.round(parseFloat(value) * 100) / 100;
    var xsd = value.toString().split(".");
    //Ext.log(xsd.length);
    if(xsd.length==1){
     value = value.toString()+".00";
     return value;
    }
    if(xsd.length>1){
     if(xsd[1].length<2){
      value = value.toString()+"0";  
     }
     return value;
    }
   }

 

posted @ 2012-08-17 11:48    阅读(755)  评论(0编辑  收藏  举报