Avatar billede dennism Nybegynder
02. oktober 2004 - 11:53 Der er 5 kommentarer og
1 løsning

JavaScript: Læg to tal sammen

Jeg lægger to tal sammen på følgende måde:

sum_int.value=sum_int.value+int[n]

Men istedet for at tallene bliver lagt sammen, bliver de bare skrevet efter hinanden, fordi mine variabler ikke bliver opfattet som tal, men som tekst. Hvordan kan jeg få den til at opfatte dem som tal?
Avatar billede powernodes Nybegynder
02. oktober 2004 - 13:33 #1
Brug " eval() "

se flg.

var d = document;
function test() {
  alert(eval(d.getElementById("f1").value) + eval(d.getElementById("f2").value));
}

sammenlignet med:


var d = document;
function test() {
  alert(d.getElementById("f1").value + d.getElementById("f2").value);
}

og

<button id="btn" onclick="test()">klik mig</button><br>
<input type="text" id="f1" value="3"><br>
<input type="text" id="f2" value="5">
Avatar billede roenving Novice
02. oktober 2004 - 13:51 #2
sum_int.value = +sum_int.value + +int[n];
Avatar billede roenving Novice
02. oktober 2004 - 13:56 #3
-- og lige den tilføjelse, at eval()-funktionen bør man kun bruge, hvis man ikke har andre chancer, for den er naturnødvendigt belastet af en hulens masse fejlrettelseskode ...

-- og i den, som powernodes viser bør man typecaste, enten på den simple måde, som jeg viser eller med parseInt eller parseFloat:

function test() {
  alert(parseFloat(d.getElementById("f1").value) + parseFloat(d.getElementById("f2").value));
}

-- den simple typecasting med + sum unary operator, har den bagdel, at den ikke tåler andet end gyldige tal, men til gengæld oversætter både hel- og decimal-tal !-)
Avatar billede dennism Nybegynder
04. oktober 2004 - 14:26 #4
roenving >>

Tak for svaret..smider du lige et svar?
Kan du forklare mig, hvorfor det virker (vil jo gerne lære lidt :))?
Avatar billede roenving Novice
04. oktober 2004 - 16:29 #5
Man kan vel sammenligne det med, at et minus placeret foran et tal jo også har en betydning uanset, om man udfører nogen anden operation ...

-- og da et plus som unary operator kun giver mening overfor talværdier, vil fortolkeren naturligvis anskue værdien som et tal, hvis den kan det !-)

Velbekomme '-)
Avatar billede roenving Novice
10. oktober 2004 - 00:13 #6
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester