求助,大家来帮忙啊,eval函数的问题...

Sunny319 2006-10-16 09:13:43
比如现在有个var test='1-2=3';
var realary=new Array(3);
realary[0]=Number(383198.11);
realary[1]=Number(43504.28);
realary[2]=Number(339693.83);
我的程序根据变量test='1-2=3';
我执行的操作就是判断realary[0]-realary[1]是不是等于realary[2];
我的程序是这样写的:
return ( eval( test.replace("=","==").replace(/(\d+)/g,"realary[$1-1]") ) );
现在有些数字验证没有问题,有些有问题,
比如上面的值去运算就是false
我通过这个语句:alert('算出值:'+eval('realary[0]-realary[1]')+'检验的值:'+realary[2]);
eval('realary[0]-realary[1]'),发现算出来的值是:339693.82.9999995,
而实际值应该是:339693.83
请教高手怎么解决这个问题!当然把eval('realary[0]-realary[1]')小数2位后面的四舍五入是一个方法,有没有更好的方法?
...全文
258 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunny319 2006-10-19
  • 打赏
  • 举报
回复
谢谢回答
fosjos 2006-10-16
  • 打赏
  • 举报
回复
eval( test.replace("=","==").replace(/(\d+)/g,"Math.round(realary[$1-1]*100)") ) );
myvicy 2006-10-16
  • 打赏
  • 举报
回复
四舍五入

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧