Edelleen tökkii tämä koodinpätkä. Yritän saada tulostettua lukujen summan, mutta tuloksena on merkkijonojen yhdistäminen peräkkäin. Kun var eka on 23 ja var toka 15 tahtoisin tuloksen 38. Nut tulokseksi tulee 2315. Ongelma liittyy tuohon promptiin, koska koodi toimii oikein, jos annan funktion kutsussa parametrit suoraan eli document.write(summa(23, 15));
function summa(x, y) {
var s = x y;
return s;
var eka = prompt("Anna ensimmäinen yhteenlaskettava!");
var toka= prompt("Anna toinen yhteenlaskettava!");
document.writeln(summa(eka,toka));
var tulos = summa(eka,toka);
document.write("");
document.writeln(tulos);
function summa(x, y) {
var s = x y;
return s;
var eka = prompt("Anna ensimmäinen yhteenlaskettava!");
var toka= prompt("Anna toinen yhteenlaskettava!");
document.writeln(summa(eka,toka));
var tulos = summa(eka,toka);
document.write("");
document.writeln(tulos);
Vastaukset 3
Vanhimmat
parseInt() muuttaa merkkijonon kokonaisluvuksi.
function summa(x, y) {
var s = parseInt(x) parseInt(y);
return s;
}
..tai sitten huomioida kutsuessa esim.
document.writeln(summa(eval(eka),eval(toka)));
..eval funkkaria voi myös käyttää syötteen tarkastamiseen esim.
function summa(x, y) {
var xx, yy,s
xx = eval(x);
yy = eval(y);
if ((xx!=null) &&(yy!=null)) {s = xx yy;}
else {s = "Virhe anna numeeriset arvot";}
return s;
}
var eka = prompt("Anna ensimmäinen yhteenlaskettava!");
var toka= prompt("Anna toinen yhteenlaskettava!");
document.writeln(summa(eval(eka),eval(toka)));