2017-12-19 4 views
0

Hier ist mein Code:So fügt Zahl wie 1 + 1 + 1 = 3 nicht "1" + "1" + "1" = 111 in Javascript

var health = prompt("Type in health"); 
var attack = prompt("Type in attack"); 
var defense = prompt ("Type in defense"); 
function calculatestats(health,attack,defense){ 
    return health/4 + attack + defense 
} 
alert (calculatestats(health,attack,defense)); 

Ich will es Ausgang machen " 3 ", wenn ich 4, 1 und 1 eintippe. Das Javascript addiert die Buchstaben," 1 "," 1 "und" 1 ". Ich möchte es mathematisch hinzufügen, und es Ausgabe 3, nicht 111. Vielen Dank.

+0

wandeln die Zeichenfolgen in Zahlen .... – epascarello

+0

Verwendung ParseInt https://developer.mozilla.org/ de-DE/docs/Web/JavaScript/Referenz/Global_Objects/parseInt oder parseFloat, wenn Sie Gleitkommazahlen einfügen möchten. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat –

Antwort

3

Die prompt() gibt eine Zeichenfolge zurück. Sie müssen explizite Typumwandlung zu tun mit + oder parseInt:

bessere Art und Weise:

function calculatestats(health,attack,defense){ 
    return parseInt(health)/4 + parseInt(attack) + parseInt(defense); 
} 
+0

Was macht das + vor "Gesundheit/4", "Angriff", "Verteidigung"? Was macht parseInt? Vielen Dank. – Ardent

+0

@Ardent Beide machen eine Typumwandlung von String zu Integer ... – Soolie

+0

Ohhh, danke! – Ardent