夭寿啦,1+2=12啦。我做计算器的时候,加法默认为字符串的连接怎么破

<!DOCTYPE html>
<html>
 <head>
  <title>计算器</title>  
  <script type="text/javascript">
   function count(){
       
    //获取第一个输入框的值
    var first=document.getElementById('txt1').value;
	//获取第二个输入框的值
    var second=document.getElementById('txt2').value;
	//获取选择框的值
    var select1=document.getElementById('select').value;
	//获取通过下拉框来选择的值来改变加减乘除的运算法则
    //设置结果输入框的值 
	var val;
	switch (select1)
	{
	 case '+' :
    val=first + second;break;
     case '-' :
    val=first - second;break;
	case '*' :
    val=first * second;break;
	case '/' :
    val=first / second;break;
	}
	document.getElementById('fruit').value=val;
   }
   
	</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>


秋高水长
浏览 1546回答 2
2回答

追梦人_dreamer

使用parseFloat()函数进行强制类型转换,将输入框里的值转换为浮点数就可以进行相加。val=parseFloat(first)+parseFloat(second);试试看。

qq_大寒_2

   JS运算碰到加法运算默认是字符串类型的,其他-,*,/默认是number类型,自己可以弹弹试试看。优先级就是碰到string和number,string优先。 alert((first+second-first));  //运算过程 '1'+'2'='12',12-1=11       alert(typeof (first+second-first));        alert(typeof (first-second));       alert(typeof (first*second));           alert(typeof (first/second));         document.getElementById('fruit').value=val;    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript