2014-09-02 38 views
3

工作,我做在JavaScript一個簡單的計算器,但+按鈕不起作用,它只是顯示號碼附近一起加總按鈕不會在JavaScript

這裏是我的代碼:

<script> 
function calc(operator) { 
    var x = document.getElementById("inp1").value; 
    var y = document.getElementById("inp2").value; 
    var z = 0; 

    switch (operator) { 
     case "+": 
     z = x + y; 
     break; 
     case "-": 
     z = x - y; 
     break; 
     case "*": 
     z = x * y; 
     break; 
     case "/": 
     z = x/y; 
     break; 
    } 
    document.getElementById("result").innerHTML=z; 
} 
</script> 
+2

您在開始時讀取的值是字符串。要獲取數字,請使用'parseInt()'或'parseFloat()'。 – Sirko 2014-09-02 07:11:04

+2

可能重複[如何從輸入標籤中總結兩個數字?](http://stackoverflow.com/questions/11961474/how-to-sum-two-numbers-from-input-tag) – 2014-09-02 07:11:50

+1

@ViktorBahtev兄弟我didn甚至不知道是什麼問題。 – 2014-09-02 07:14:25

回答

2

你可以使用這樣的:

z= +x + +y; // + is prefixed to convert input into number 
+2

簡短而有用的感謝! – 2014-09-02 07:26:36

2

xy變量包含字符串。他們解析爲數字:

var x = parseFloat(document.getElementById("inp1").value); 
var y = parseFloat(document.getElementById("inp2").value); 

它發生在了其他運營商合作,因爲沒有加減乘除的字符串,它會推斷出它必須將字符串轉換爲數字。

1
var x=document.getElementById("inp1").value; 
var y=document.getElementById("inp2").value; 

將這些文本框中的值作爲字符串返回。

當您在字符串上使用+運算符時,它將連接這些值。如果您在數字上使用相同的運算符,則會添加這些值。

您將需要使用parseInt函數使用以下方法之一將文本框值解析爲整數。

var x=parseInt(document.getElementById("inp1").value); 
var y=parseInt(document.getElementById("inp2").value); 

,然後做z=x+y;我會推薦這是因爲所有的操作,而不僅僅是此外,將在整數來perfomed。

或簡單地改變z=z+y;看起來像z = parseInt(x) + parseInt(y);

1

的快速方法將字符串轉換爲數字是使用一元+運算符。

z = +x + +y 

z = parseInt(x) + parseInt(y); 
1
var x = parseInt(document.getElementById("inp1").value); 

這個轉換你的 「弦」 號整數,也可以使用parseFloat(),如果你有浮點數

1

你可以使用這樣的:

var x = document.getElementById("inp1").value*1; 
var y = document.getElementById("inp2").value*1; 

x in t他的時刻是數字!

對我更乾淨!

+1

這是'* 1'唯一的答案。它有什麼作用? (我想它會將字符串乘以1,並將其轉換爲整數。)由於您推薦這種方法(並且我同意它看起來不錯),所以我建議您將其發佈爲規範問題的答案http:// stackoverflow .com/questions/8976627/how-to-add-two-strings-as-if-they-were-numbers – dcorking 2014-09-02 08:17:00

+1

當乘以1(* 1)時,轉換爲數字而不是整數,這是不同的。 – Seconddj 2014-09-17 07:57:57