javascript中万元转化成元的问题(m=n*10000)当n=19.99、20.99时输出的m值199899.99999999997和209899.99999999997

lxm8588 2006-02-27 05:58:00
<script language="javascript1.2">
function xxg()
{
if (document.form1.username.value!=""){
var n=document.form1.username.value;
var m=n*10000;
alert(m)
document.form1.username.focus();
return false
}


return true
}
</script>
<form name="form1" method="post" action=""onsubmit="return xxg()">
<div align="center"><strong>输入值</strong>:
<input name="username" type="text" size="10">
<br>
<br>

<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit" value="重置">
</div>
</form>

当n=19.99、20.99时输出的m值是199899.99999999997和209899.99999999997。为什么不是199900和209900呢?这样会误差好大的。然而其他的数却都正常!各位可以把上边的程序考下来运行看看。
请问有谁知道这是什么原因啊有没有好的解决办法啊?
...全文
370 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxm8588 2006-02-28
  • 打赏
  • 举报
回复
var n=document.form1.username.value;
var m=n*10000;

alert(getFloat(m))
function getFloat(num)
{
var num = parseFloat(num);
if(isNaN(num))num = 0;
return num;
}
是这样么?还是不行啊,显示的还是209899.99999999997
lxm8588 2006-02-28
  • 打赏
  • 举报
回复
有这种方法么?告诉我怎么用啊?
itzhiren 2006-02-28
  • 打赏
  • 举报
回复
好像用getfloat,我记得前几天遇到这样一个问题,用getdouble不行,用getfloat就可以
lxm8588 2006-02-28
  • 打赏
  • 举报
回复
哦!可我是新手,能告诉我怎么解决么?
wanglin824 2006-02-27
  • 打赏
  • 举报
回复
js中浮点数计算的老问题了。

81,122

社区成员

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

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