求 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;
}
}
基本上可以用=.=