读书人

JS脚本_浮点数截位[直接截位带四舍五

发布时间: 2012-10-14 14:55:08 作者: rapoo

JS脚本_浮点数截位[直接截位,带四舍五入功能]
纯收集JS有用的脚本函数。
js的浮点数处理是值得关注的问题。不久前写了个页面浮点数校验的功能。页面中浮点数是以#,##0.00的格式显示的,在js中肯定不能用+直接做了。在js中对浮点数的处理如下:

notBlend = notBlend.replace(/,/g,""); //js的replace是支持正则表达式的,/,/代表要替换的字符,g代表全部替换notBlend = parseFloat(notBlend);//去掉逗号后转换为float。js是没有parseDouble的notBlend = formatnumber(notBlend,2);


//浮点数直接截位函数function formatnumber(value,num){    var tmp,idx,len,i    tmp = value.toString();    idx = tmp.indexOf('.');    len = tmp.length;    if (num==0){        if (idx!=-1)        tmp = tmp.substring(0,idx);    }    else{        if (idx==-1){            tmp = tmp + ".";            for (i=1;i<=num;i++)                tmp = tmp + "0";        } else {            tmp = tmp.substring(0,idx+num+1);            for (i=len;i<=idx+num;i++)                tmp = tmp + "0";            }        }     return tmp }//截位带四舍五入function adv_format(value,num) //四舍五入{     var a_str = formatnumber(value,num);     var a_int = parseFloat(a_str);     if (value.toString().length>a_str.length){          var b_str = value.toString().substring(a_str.length,a_str.length+1)          var b_int = parseFloat(b_str);          if (b_int<5){               return a_str          }else{               var bonus_str,bonus_int;               if (num==0){                    bonus_int = 1;               }else{                    bonus_str = "0."                    for (var i=1; i<num; i++)                    bonus_str+="0";                    bonus_str+="1";                    bonus_int = parseFloat(bonus_str);               }         a_str = formatnumber(a_int + bonus_int, num)          }     }     return a_str}

读书人网 >JavaScript

热点推荐