为了账号安全,请及时绑定邮箱和手机立即绑定

算的结果怎么不对

你们有没有算一下结果竟然不对啊。1加1怎么会等于1

正在回答

2 回答

是不是没有调用pareInt()函数,将获取的字符串类型转换为整型。

0 回复 有任何疑惑可以回复我~

按照下面这个格式就可以

case "+":
                result= parseFloat(a)+parseFloat(b);
                break;

借用别的小伙伴的话:

1.input获取的value是字符串
2.js是弱数据类型,在运算中会自动转换

只有+这个运算符是既可以在数字中使用也可以在字符串中使用,所以会出现'1'+'2'='12',而1*2=2是因为字符串'1'在*运算中会自动转化成数字1,所以计算是正确的。

所以需要用parseFloat或者parseInt对字符串进行转换


0 回复 有任何疑惑可以回复我~
#1

qq_明媚的忧伤_1 提问者

抱歉啊,一直都忘了看到这个问题,但是我在上面声明时对这个a,b进行了数据类型转换了啊,为什么不行。 var a=parseFloat(document.getElementById("txt1").value); var b=parseFloat(document.getElementById("txt2").value); case"+": result=a+b; break;
2017-03-19 回复 有任何疑惑可以回复我~
#2

qq_明媚的忧伤_1 提问者

为什么只能采纳一个人的解答。。
2017-03-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

算的结果怎么不对

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信