Optellen mislukt na gebruik van prompt...

  • Onderwerp starter Onderwerp starter Nvdl
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Nvdl

Gebruiker
Lid geworden
15 sep 2009
Berichten
9
Javascript plaatst de getallen achterelkaar in plaats van ze op te tellen;

280+500 wordt 280500 in plaats van 780. Aftrekken lukt echter wel.

Wat heb ik fout gedaan?


<html>
<head>
<title>Optellen</title>
</head>
<body>
<SCRIPT type="text/javascript">
a1=280
b1=500
c1=a1+b1
document.write("<BR>a1 = ",a1)
document.write("<BR>b1 = ",b1)
document.write("<BR>c1 = ",c1)

a2=window.prompt("a2 = ","280")
b2=window.prompt("b2 = ","500")
c2=a2+b2
document.write("<BR>a2 = ",a1)
document.write("<BR>b2 = ",b2)
document.write("<BR>c2 = ",c2)

a3=window.prompt("a3 = ","280")
b3=window.prompt("b3 = ","500")
c3=b3-a3
document.write("<BR>a3 = ",a3)
document.write("<BR>b3 = ",b3)
document.write("<BR>c3 = ",c3)
</script>
</body>
</html>
 
Het zijn strings en die kun je niet bij elkaar optellen:

[JS]
a1=280;
b1=500;
c1=a1+b1;
document.write("<BR>a1 = ",a1);
document.write("<BR>b1 = ",b1);
document.write("<BR>c1 = ",c1);

a2=window.prompt("a2 = ","280");
b2=window.prompt("b2 = ","500");
c2= parseInt(a2)+parseInt(b2);
document.write("<BR>a2 = ",a1);
document.write("<BR>b2 = ",b2);
document.write("<BR>c2 = ",c2);

a3=window.prompt("a3 = ","280");
b3=window.prompt("b3 = ","500");
c3=b3-a3;
document.write("<BR>a3 = ",a3);
document.write("<BR>b3 = ",b3);
document.write("<BR>c3 = ",c3);
[/JS]

(Na elke javascript regel volgt een ; )
 
Nog een probleem;

Het optellen van decimale getallen lukt niet met parseInt().

Bijvoorbeeld:

a=10.863
b=9.853
som=parseInt(a)+parseInt(b)

geeft som=19 in plaats van 20.716..

Heeft iemand een oplossing?

Alvast bedankt!
 
Nevermind het is al gelukt;

van een string een getal maken kan door te vermenigvuldigen met 1.

Dus optel=a*1+b*1 werkt gewoon.

Opgelost
 
int, of integer, is een rond/heel getal 1 2 3 4 5 etc

Als er sprake is van decimalen spreek je van een float. De nette oplossing is dus:

som=parseFloat(a)+parseFloat(b)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan