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呢?这样会误差好大的。然而其他的数却都正常!各位可以把上边的程序考下来运行看看。
请问有谁知道这是什么原因啊有没有好的解决办法啊?
...全文
161 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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中浮点数计算的老问题了。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-27 05:58
社区公告
暂无公告