Hogyan lehet Javascriptben szöveget átkonvertálni számmá?
Ott van a legtetején a kódpélda is, tényleg csak olvasni kell.
Number('123') === 123 //true
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;
…
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!