javascript四舍五入的问题

求 555.555的四舍五入保留两位小数

使用Math.round  怎么都算不对,结果都是555.55 ,貌似是因为java计算浮点数时会莫名其妙在结尾跟上一串数字 比如555.55500000003

 

无奈只能写这个方法

function round(a,b){

var s=a.toString().indexOf(".");

a0=a.toString().substr(0,s+b+1);

a1=Math.round(a.toString().substr(s+b+1,1)*0.1)*Math.pow(10,-b);

return(a0*1+a1);

}

function fix(v,n){

var s =''+v;

var flag=false;

if(s.substring(0,1)=='0'){

s='1'+s;

flag=true;

alert(1);

}

var i =(s).indexOf('.');

if (s.length-i-1>n){

s=s.substring(0,s.length-(s.length-i-2-n));

var j =''+ Math.floor((s.replace('.','')/10+0.5));

j=j.substring(0,i)+'.'+j.substring(i,j.length);

if(flag){

return j.substring(1,j.length);

}else{

return j;

}

}else{

return s;

}

}

基本上可以用=.=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值