第一种:
var decimalNumber = function (value,bit) {
var tmp = "";
//数字转为字符串
var str = value.toString();
//获取小数点位置
var point = str.indexOf('.');
if(point==-1) {
return value;
}
//n的长度大于保留位数长度
if (str.length > point + bit) {
//保留小数后一位是否大于4,大于4进位
if (parseInt(str.substr(point + bit + 1, 1)) > 4) {
var bin = (parseInt(str.substr(point+1, bit)) + 1);
if(bin<Math.pow(10, bit)){
tmp += bin;
var len = tmp.length;
if(len < bit){
tmp = "";
for(var i=0; i<bit-len;i++){
tmp+="0";
}
tmp += bin;
}
//return str.substring(0, point) + "." + tmp;
str = str.substring(0, point) + "." + tmp;
} else {
//return parseInt(str.substring(0, point))+1+".0";
str = parseInt(str.substring(0, point))+1+".0";
}
} else {
//return str.substring(0, point) + str.substr(point, point+bit);
str = str.substring(0, point) + str.substr(point, bit+1);
}
}
return str;
};
第二种:
var decimalNumber = function(srcStr,nAfterDot){
var srcStr,nAfterDot;
var resultStr,nTen;
srcStr = ""+srcStr+"";
strLen = srcStr.length;
dotPos = srcStr.indexOf(".",0);
if (dotPos == -1){
resultStr = srcStr+".";
for (i=0;i<nAfterDot;i++){
resultStr = resultStr+"0";
}
return resultStr;
}
else{
if ((strLen - dotPos - 1) >= nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j<nAfterDot;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
return resultStr;
}
else{
resultStr = srcStr;
for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}