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
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值