Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet Javascriptben...

Hogyan lehet Javascriptben szöveget átkonvertálni számmá?

Figyelt kérdés
Megpróbáltam egy nagyon alap számológépet létrehozni, de hibába ütköztem. Azt szeretném hogy ugye megadok két számot, és összeadja. Ehelyett egymás mellé helyezi a számokat:(Pl: Beírom hogy 1,2 és nem azt írja ki hogy 3, hanem azt hogy 12 :() Itt a kód: [link]

2021. jan. 10. 18:12
 1/7 anonim ***** válasza:
100%
2021. jan. 10. 18:23
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
Első, ummm letudnád írni úgy hogy megértsem? Elég lenne csak egy kódrészlet mert ebből semmit sem értek :/
2021. jan. 10. 18:32
 3/7 anonim ***** válasza:

Ott van a legtetején a kódpélda is, tényleg csak olvasni kell.


Number('123') === 123 //true

2021. jan. 10. 18:54
Hasznos számodra ez a válasz?
 4/7 2*Sü ***** válasza:
100%

Számmá való konvertálás kikényszerítése a szorzás művelettel:

var solve = 1*number1 + 1*number2;

(Az 1-gyel való szorzás miatt számmá próbálja konvertálni a szöveget.)


Némileg elegánsabb, és megspórolsz egy felesleges szorzást:

var solve = Number(number1) + Number(number2);


Kicsit más jellegű megoldás ha egészeket vársz:

var solve = parseInt(number1) + parseInt(number2);


Vagy ha nem csak egészeket, akkor:

var solve = parseFloat(number1) + parseFloat(number2);


A parseInt és a parseFloat esetén tudni kell, hogy ha a szövegnek az eleje szám, de a vége nem, vagy ha a szöveg üres karakterekkel kezdődik (szóköz, tab, sortörés), akkor is visszaadja a szám részt. Ez praktikus akkor, ha felesleges szóköz lehet a szöveg elején vagy végén, vagy valami mértékegység is van a szám után. Pl.:

parseInt("3.14") → 3

parseInt("20 °C") → 20

parseInt("\n \t 12 ") → 12


~ ~ ~


ParseInt esetén második paraméterként meg lehet adni a számrendszert is. Pl.:

parseInt('ff', 16) → 255

parseInt('10110010', 2) → 178


~ ~ ~


Amit érdemes tudni, hogy speciális számok esetén is működik a dolog, mind a parseInt(), ParseFloat(), mind a Number(), mind az 1-gyel való szorzás esetén is, ez néha jó, néha probléma:

parseFloat('0x10') → 16

parseFloat('3e+2') → 300

parseFloat('NaN') → NaN

parseFloat('Infinity') → Infinity


~ ~ ~


Lehet még elegánsabb lenne, ha a konvertálás már az értékek kinyerésénél megtörténne:


var number1 = Number(document.getElementById("n1").value);

var number2 = Number(document.getElementById("n2").value);

var solve = number1 + number2;

2021. jan. 10. 19:05
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Úristen, negyedik köszi :D Pont érthetően mondtad el, életet mentettél :D
2021. jan. 10. 19:08
 6/7 2*Sü ***** válasza:
75%
De ne szokd meg, #1 bőven elegendő választ adott. Ha programozni akarsz, meg kell legalább alapszinten tanulnod angolul, ismerned kell alapfogalmakat (pl. string), és tudnod kell Google-t használni, pl.: [link]
2021. jan. 10. 19:16
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
Tudom, igen ezzel tisztában vagyok, mégegyszer, köszi a segítséget :D
2021. jan. 10. 19:25

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!