(Snáď) Jednoduchý problém v JavaScripte Vyřešeno

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

BravoZ
Level 1
Level 1
Příspěvky: 88
Registrován: duben 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod BravoZ » 01 led 2015 02:18

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

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: (Snáď) Jednoduchý problém v JavaScripte  Vyřešeno

Příspěvekod faraon » 01 led 2015 08:45

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: duben 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod BravoZ » 01 led 2015 13:40

Ďakujem Ti pekne :)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problém s RAM
    od lukas222 » 04 lis 2024 13:52 » v Problémy s hardwarem
    4
    3383
    od lukas222 Zobrazit poslední příspěvek
    05 lis 2024 13:36
  • Problém s FPS
    od mcrakvar » 26 lis 2024 16:22 » v Vše ostatní (sw)
    4
    4015
    od petr22 Zobrazit poslední příspěvek
    28 lis 2024 10:06
  • Problém s internetem Příloha(y)
    od valama » 06 dub 2025 16:13 » v Internet a internetové prohlížeče
    11
    4779
    od RIKI22 Zobrazit poslední příspěvek
    06 dub 2025 20:42
  • Problém s mikrofonem Příloha(y)
    od Shokata88 » 19 úno 2025 16:44 » v Problémy s hardwarem
    4
    2557
    od Shokata88 Zobrazit poslední příspěvek
    19 úno 2025 19:18
  • Problém s internetem
    od yakubb23 » 31 led 2025 19:01 » v Sítě - hardware
    1
    4630
    od meda2016 Zobrazit poslední příspěvek
    31 led 2025 21:50

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů