為什么我輸入1+2=12?
<!DOCTYPE html>
<html>
?<head>
? <title> 事件</title> ?
? <script type="text/javascript">
? ?function count(){
? ? ? ? var result;
? ? ? ? //獲取第一個輸入框的值
? ? ? ? var x=document.getElementById("txt1").value;
? ? //獲取第二個輸入框的值
? ? ? ? var y=document.getElementById("txt2").value;
? ? //獲取選擇框的值
? ? ? ? var a=document.getElementById("select").value;
? ? //獲取通過下拉框來選擇的值來改變加減乘除的運(yùn)算法則
? ? ? ? switch(a)
? ? ? ? {
? ? ? ? ? ? case"+":
? ? ? ? ? ? ? ? result=x+y;break;
? ? ? ? ? ? case"-":
? ? ? ? ? ? ? ? result=x-y;break;
? ? ? ? ? ? case"*":
? ? ? ? ? ? ? ? result=x*y;break;
? ? ? ? ? ? case"/":
? ? ? ? ? ? ? ? result=x/y;break;
? ? ? ? }
? ? ? ? document.getElementById("fruit").value=result;
? ? }
? ?
? ? //設(shè)置結(jié)果輸入框的值?
? ??
?
? </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()" /> <!--通過 = 按鈕來調(diào)用創(chuàng)建的函數(shù),得到結(jié)果-->?
? ?<input type='text' id='fruit' value="" /> ??
?</body>
</html>
2015-11-13
改成如下
通過-0 可以將 x 或 y 轉(zhuǎn)成數(shù)字
因為不知道輸入的是整數(shù)還是小數(shù),所以無法確定用 parseInt ?還是 parseFloat?
程序算小數(shù)可能會出問題 ?比喻 0.6+0.3 ?= 0.8999999999999999,所以出現(xiàn)小數(shù)時最好把小數(shù)轉(zhuǎn)成整數(shù)來計算 比喻 (0.6*10+0.3*10)/10 = 0.9?
2015-11-13
對啊,你的1+2他就解析成了 “1”+“2”=“12”
2015-11-13
+號在JS中還有一個功能是字符串拼接,所以你在操作x,y 時,一定要先把x,y轉(zhuǎn)成數(shù)字類型的,用x = parseInt(x);后再試試