(Snáď) Jednoduchý problém v JavaScripte

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
BravoZ
Level 1
Level 1
Příspěvky: 88
Registrován: 28 dub 2014 19:47

(Snáď) Jednoduchý problém v JavaScripte

Příspěvek od BravoZ »

Ahoj, potrebujem sa spýtať pre niekoho možno hlúpu otázku..:
Prečo, ak za a aj b napíšem 5, tak a+b = 55 a nie 10 ?

var a =prompt()
var b =prompt()
alert(a + b)

Teda tipujem, že tú 5 berie ako text, nie ako číslo.
A otázka je, ako docieliť to, aby bol výsledok a+b matematický ?

Snáď chápete, čo sa pýtam..
Ďakujem
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: (Snáď) Jednoduchý problém v JavaScripte

Příspěvek od faraon »

Tvůj tip je správný, načítáš řetězec, který musíš před počítáním zkonvertovat na číslo:

Kód: Vybrat vše

<script>
  var s1 = prompt("1. číslo:","0");
  var s2 = prompt("2. číslo:","0");
  var a = parseInt(s1,10);
  var b = parseInt(s2,10);
  var c = a + b;
  alert("Součet: "+c);
</script>
Je dobré zadat defaultní hodnotu, která se načte pokud uživatel nic nevloží, abys výsledek neměl NaN.

Podle toho jestli budeš pracovat s celými nebo reálnými čísly použij příslušnou převodní funkci:

Kód: Vybrat vše

parseInt(string, radix);
parseFloat(string,radix);
Kde radix je základ číselné soustavy ve které převádíš, v rozsahu 2-36, ale s tou naší desítkovou snad zatím vystačíme.

Samozřejmě to můžeš zkrátit a ušetřit pár proměnných za cenu menší přehlednosti:

Kód: Vybrat vše

<script>
  var x = parseInt(prompt("X:","0"),10);
  var y = parseInt(prompt("Y:","0"),10);
  alert("Součet: "+(x+y));
</script>
Bacha na závorky v tom alert(), ať to sečteš dřív než se to převede zpět na text!

A protože je JavaScript odvozený z jazyka C, tak je minimálně slušnost ty středníky na konci řádků dělat, nikdy nevíš kdy tvůj skript v nějakém novějším prohlížeči přestane fungovat, on i HTML5 proti staršímu HTML také určité dřív tolerované chyby bere přísněji, a některé prasecky napsané weby se v něm prostě nezobrazují.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
BravoZ
Level 1
Level 1
Příspěvky: 88
Registrován: 28 dub 2014 19:47

Re: (Snáď) Jednoduchý problém v JavaScripte

Příspěvek od BravoZ »

Ďakujem Ti pekne :)
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problém s internetem
    od valama » » v Internet a internetové prohlížeče
    11 Odpovědi
    16496 Zobrazení
    Poslední příspěvek od RIKI22
  • Problem s nabijanim
    od AirCrew » » v Problémy s hardwarem
    4 Odpovědi
    16541 Zobrazení
    Poslední příspěvek od petr22
  • problem s ventilátorem
    od Sambala » » v Problémy s hardwarem
    2 Odpovědi
    8868 Zobrazení
    Poslední příspěvek od Sambala
  • Problém s monitorom
    od sloliv » » v Problémy s hardwarem
    8 Odpovědi
    7238 Zobrazení
    Poslední příspěvek od sloliv
  • Problém se spuštěním PC
    od Viroxx » » v Problémy s hardwarem
    1 Odpovědi
    6687 Zobrazení
    Poslední příspěvek od petr22

Zpět na „Programování a tvorba webu“