/****************************************************************
* value:需要处理的数字
* fixLength:保留几位小数,最大不能大于10
* isRound:是否需要四舍五入,true需要,false不需要,默认不进行操作
* (看fixLength的后面一位是否需要进行操作,即保留2位,则看第三位是否需要四舍五入
* **************************************************************/
function toFixRound(value,fixLength,isRound){
var lessZeroFlag=false;//默认不是小于0
if(isNaN(value)){return value;}
if(value<=0){
lessZeroFlag=true;
value=value*-1;//转为正数
}
//判断是不是整数
if((parseInt(fixLength, 10) === fixLength)==false){return returnValue(value,lessZeroFlag);}
//判断是否大于10
if(fixLength>10){return returnValue(value,lessZeroFlag);}
var afterDotLength=fixLength+1;
var round=false;
if(typeof(isRound)=="boolean"){round=isRound;}
//动态构造表达式
eval("var validateReg = /^\\d+\\.\\d{"+afterDotLength+",}$/;");
if(false==validateReg.test(value)){
return returnValue(value,lessZeroFlag);
}
var times=Math.pow(10,fixLength);
var result=0;
if(round==true){//需要四舍五入
result = (Math.round(value*times)/times);
}else{//不需要四舍五入
result = (Math.floor(value*times)/times);
}
return returnValue(result,lessZeroFlag);
//flag==true表示当前value是绝对值,需要进行还原
function returnValue(value,flag){
if(flag){
return value*-1;
}else{
return value;
}
}
}
* value:需要处理的数字
* fixLength:保留几位小数,最大不能大于10
* isRound:是否需要四舍五入,true需要,false不需要,默认不进行操作
* (看fixLength的后面一位是否需要进行操作,即保留2位,则看第三位是否需要四舍五入
* **************************************************************/
function toFixRound(value,fixLength,isRound){
var lessZeroFlag=false;//默认不是小于0
if(isNaN(value)){return value;}
if(value<=0){
lessZeroFlag=true;
value=value*-1;//转为正数
}
//判断是不是整数
if((parseInt(fixLength, 10) === fixLength)==false){return returnValue(value,lessZeroFlag);}
//判断是否大于10
if(fixLength>10){return returnValue(value,lessZeroFlag);}
var afterDotLength=fixLength+1;
var round=false;
if(typeof(isRound)=="boolean"){round=isRound;}
//动态构造表达式
eval("var validateReg = /^\\d+\\.\\d{"+afterDotLength+",}$/;");
if(false==validateReg.test(value)){
return returnValue(value,lessZeroFlag);
}
var times=Math.pow(10,fixLength);
var result=0;
if(round==true){//需要四舍五入
result = (Math.round(value*times)/times);
}else{//不需要四舍五入
result = (Math.floor(value*times)/times);
}
return returnValue(result,lessZeroFlag);
//flag==true表示当前value是绝对值,需要进行还原
function returnValue(value,flag){
if(flag){
return value*-1;
}else{
return value;
}
}
}