首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS中 这类有关问题是如何解决的

2012-05-02 
JS中 这类问题是怎么解决的funAlert(){var a53855.45var b2395.46var ca+b}c56250.90999999999999

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,会不会和这个有关,另外算钱这种事情还是放后台做吧,前台也太不安全了
[解决办法]
同问,楼上怎么解决的
[解决办法]
探讨

貌似和小数点前的数字大小有关,32767.45 + 0.46就是对的,32768.45 + 0.46就有问题了,int取值范围是-32728~32767,会不会和这个有关,另外算钱这种事情还是放后台做吧,前台也太不安全了

热点排行
Bad Request.