javascript乘法问题

vara=1.9varb=3varc=0.9vadd=2.9vare=3.9a*b=3.6999b*c=2.7b*d=8.7b*e=11.7请问为什么非要是1.9才会出问... var a = 1.9
var b = 3
var c = 0.9
vad d = 2.9
var e = 3.9
a * b = 3.6999
b * c = 2.7
b * d = 8.7
b * e = 11.7

请问为什么非要是1.9才会出问题,2.9,3.9,0.9都算出来是正确的
回答正确补20分
展开
 我来答
citytalent
2008-08-26 · TA获得超过1222个赞
知道小有建树答主
回答量:542
采纳率:0%
帮助的人:579万
展开全部
因为这个是浮点数,浮点数本身就不精确,跟是1.9 2.9没有关系的

补充下 你的 a*b 应该是5。6999吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu437
2008-08-26 · TA获得超过3472个赞
知道大有可为答主
回答量:2690
采纳率:0%
帮助的人:2328万
展开全部
这个问题是精度问题,不是1.9的问题

因为在计算机里面无法准确保存浮点数的,这样的精度计算是经常出问题的~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
otiswanglei
2008-08-26 · TA获得超过534个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:297万
展开全部
JS计算浮点是有误差的..这是无法改变的...你可以自己写方法来实现...曾经写过一个...回去帮你找找

四舍五入也常出错...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lucian_se
2008-08-26 · 超过27用户采纳过TA的回答
知道答主
回答量:215
采纳率:0%
帮助的人:109万
展开全部
关注中,有答案了通知声啊

<script type="text/javascript">
function aa(){
var a = 0.9;
var b = 3;
for(var i=1;i<1000;i++){

alert(a*b);

a=a+1;
}

}

</script>

循环1000次 答案有3种 .6999999999999 .7 .7000000000003
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lihuahuahaohao
2008-08-26
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
没有错误的吧?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
function aa(){
var a = 0.9;
var b = 3;
alert(a*b);
}
</script>

</HEAD>

<BODY>
<input type="button" value="点击" onclick="aa();">
</BODY>
</HTML>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式