JS 的浮点运算经常不精确,手工处理吧,:)<script>
var a = "0.1";
var b = "0.05";
var c = a*1 + b*1;
c = c.Fixed(2);
alert(c);function Number.prototype.Fixed(n){
with(Math){
var tmp=pow(10,n);
return round(this*tmp)/tmp;
}
}
</script>
var a = "0.1";
var b = "0.05";
var c = a*1 + b*1;
c = c.Fixed(2);
alert(c);function Number.prototype.Fixed(n){
with(Math){
var tmp=pow(10,n);
return round(this*tmp)/tmp;
}
}
</script>
<!--
//** power by fason
function fxMultiply(a,b)
{
var f1 = String(a).split(".").length>1 ? String(a).split(".")[1].length : 0;
var f2 = String(b).split(".").length>1 ? String(b).split(".")[1].length : 0;
var aa = String(a).replace(/^0*|\./g,'');
var bb = String(b).replace(/^0*|\./g,'');
return Number(aa)*Number(bb)/Math.pow(10,f1+f2);
}alert(fxMultiply(0.1,0.05));
//-->
</script>
阿信的方法不错,先称后除
因为作加法用
稍微修改了一下,如下:
将 return Number(aa)*Number(bb)/Math.pow(10,f1+f2);
替换为
return Number(aa*Math.pow(10,f2))+Number(bb*Math.pow(10,f1))/Math.pow(10,f1+f2);
得到结果:)
多谢了
var b = "0.05";
var c = a*1 + b*1;c.toFixed(2);
返回两位小树
<script language="JavaScript">
<!--
var a = "0.1";
var b = "0.05";
var c = a*1 + b*1;
var d = c.toFixed(2);window.alert(d);
//-->
</script>