funAlert()
{
var a=53855.45;
var b=2395.46;
var c=a+b;
}
c=56250.90999999999999;这个类似的怎么解决能保证 结果 正确 是 c=56250.91因为我这套系统是钱的 必须精确 就大牛给 完美解决办法.
{
var a=53855.45;
var b=2395.46;
var c=a+b;
}
c=56250.90999999999999;这个类似的怎么解决能保证 结果 正确 是 c=56250.91因为我这套系统是钱的 必须精确 就大牛给 完美解决办法.
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;
}
var a=53855.45;
var b=2395.46;
var c=a+b;
alert(c.toFixed(2))
javascript(其实很多语言都是这样)为了提供计算的性能,对计算的精度进行了舍弃,然后计算后转换成十进制就会出现大家看到的情况。
如果数据太大,超出了数据类型范围,需要另作处理,可以参考清洁工大叔曾经写的大数计算。