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

求解!为什么没有加parseInt()函数时,计算相加时,第一个框的数字会被放大10倍呢,从而使结果不正确,但是相减,相乘,相除又是正确的。

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

    var num1,num2,num3,fruit;  

    //获取第一个输入框的值

    num1 = document.getElementById("txt1").value;

//获取第二个输入框的值

    num2 = document.getElementById("txt2").value;

//获取选择框的值

    num3 = document.getElementById("select").value;

//获取通过下拉框来选择的值来改变加减乘除的运算法则

    //设置结果输入框的值 

    switch(num3){

        case "+":fruit=num1+num2;break;

        case "-":fruit=num1-num2;break;

        case "*":fruit=num1*num2;break;

        case "/":fruit=num1/num2;break;

    }

    document.getElementById("fruit").value=fruit;

   }

  </script> 

 </head> 

 <body>

   <input type='text' id='txt1' /> 

   <select id='select'>

<option value='+'>+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

   </select>

   <input type='text' id='txt2' /> 

   <input type='button' value=' = ' onclick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果--> 

   <input type='text' id='fruit' />   

 </body>

</html>


正在回答

3 回答

document.getElementById("fruit").value返回值是字符串,若要进行运算,需要使用parseInt()或parseFloat()函数将其进行解析为数值。否则6+6相当于字符串“6”+“6”=“66”,类似于“lo”+"ve"="love"

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

怎么看出来放大了十倍?  你换上字母输入看看 ,   parseInt()能解析一个字符串,然后再返回一个整数,如果不加这个,只是单纯的把两个字符串放在一起。

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

天涯蝶舞 提问者

比如第一个框输入5,第二个框输入6,相加的结果却是56.但是只要加上parseInt()就正确了,为什么呢?
2016-07-09 回复 有任何疑惑可以回复我~
#2

一剑一人 回复 天涯蝶舞 提问者

因为它既是它,也不是它,要成为它就需要证明啊,既是被解析
2016-07-09 回复 有任何疑惑可以回复我~
#3

一剑一人 回复 天涯蝶舞 提问者

弱弱的问一句,你怎么知道哪个是5哪个是6的啊,也是后天被人引导的啊。。。
2016-07-09 回复 有任何疑惑可以回复我~

parseFloat()

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

天涯蝶舞 提问者

不使用这个函数,只要保证输入的都是数字不行么?
2016-07-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求解!为什么没有加parseInt()函数时,计算相加时,第一个框的数字会被放大10倍呢,从而使结果不正确,但是相减,相乘,相除又是正确的。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号