JS中 这类问题是怎么解决的
funAlert()
{
var a=53855.45;
var b=2395.46;
var c=a+b;
}
c=56250.90999999999999;
这个类似的怎么解决能保证 结果 正确 是 c=56250.91
因为我这套系统是钱的 必须精确 就大牛给 完美解决办法.
------解决方案--------------------
http://blog.csdn.net/lifuxiangcaohui/article/details/6566710
不过我始终建议,精确计算不要放在前端给JS来做~~~
------解决方案--------------------
既然是钱的,那就放到后台去做
------解决方案--------------------顶2、3楼
alert(c.toFixed(2))
------解决方案--------------------<input type="button" onclick="changeTwoDecimal(56250.90999999999999)"/>
function changeTwoDecimal(x)
{
var f_x = parseFloat(x);
if (isNaN(f_x))
{
alert('function:changeTwoDecimal->parameter error');
return false;
}
var f_x = Math.round(x*100)/100;
alert(f_x);
return f_x;
}
------解决方案--------------------JScript code
var a=53855.45;
var b=2395.46;
var c=a+b;
alert(c.toFixed(2))
------解决方案--------------------
貌似和小数点前的数字大小有关,32767.45 + 0.46就是对的,32768.45 + 0.46就有问题了,int取值范围是-32728~32767,会不会和这个有关,另外算钱这种事情还是放后台做吧,前台也太不安全了
------解决方案--------------------
同问,楼上怎么解决的
------解决方案--------------------