Razred Number
je objektna različica primitivnega tipa number
. Vsebuje lastnosti in metode za delo s števili. Vse lastnosti in metode lahko uporabljamo kar na primitivnem tipu number
. JavaScript bo v takem primeru vrednost tipa number
pretvoril v začasen objekt razreda Number
, vrnil ali nastavil vrednost ustrezne lastnosti, nato pa uničil začasni objekt.
Števila v JavaScript so vedno 64-bitna tipa float
Za razliko od mnogih drugih programskih jezikov, JavaScript ne definira različnih tipov števil, kot npr. integer, short, long, float, itd.
Števila JavaScript so vedno shranjena kot števila s plavajočo vejico, po mednarodnem standardu IEEE 754.
Ta format shranjuje števila 64 bitno, kjer je število shranjeno v bitih od 0 do 51, eksponent v bitih od 52 do 62, predznak pa v bitu 63.
Natančnost števil v JavaScript
V JavaScript so cela števila brez eksponentnega zapisa lahko velika do 15 števk.
<p>Cela števila so lahko velika do 15 števk.</p>
<button onclick="celoStevilo()">Izpiši velika cela števila</button>
<p id="primer"></p>
<script>
function celoStevilo() {
var x = 999999999999999; //vrednost x je 999999999999999
var y = 9999999999999999; //vrednost y je 10000000000000000
document.getElementById("primer").innerHTML = x + "<br>" + y;
}
</script>
Cela števila so lahko velika do 15 števk.
Največje število decimalk je lahko 17, ampak računanje s plavajočo vejico ni vedno 100% aritmetično točno:
<p>Računanje s plavajočo vejico ni vedno aritmetično 100% točno.</p>
<button onclick="decimalnoStevilo()">Izpiši izračun z decimalnimi števili </button>
<p id="primer"></p>
<script>
function decimalnoStevilo() {
var x = 0.2 + 0.1;
document.getElementById("primer").innerHTML = "0.2 + 0.1 = " + x;
}
</script>
Računanje s plavajočo vejico ni vedno aritmetično 100% točno.
To težavo lahko odpravimo z množenjem in deljenjem:
<script>
function decimalnoStevilo() {
var x = (0.2 * 10 + 0.1 * 10) / 10;
document.getElementById("primer").innerHTML = "(0.2 * 10 + 0.1 * 10) / 10 = " + x;
}
</script>
Konstruktorji Number
Konstruktor | Opis |
---|---|
Number() |
Sestavi nov objekt razreda Number, ki vsebuje vrednost 0. |
Number(num) |
Sestavi nov objekt razreda Number, ki vsebuje vrednost num. |
Lastnosti Number
Lastnost | Opis |
---|---|
MAX_VALUE |
vrne največjo pozitivno končno številsko vrednost, ki jo lahko hrani (1.7976931348623157e+308) |
MIN_VALUE |
vrne najmanjšo pozitivno številsko vrednost, ki jo lahko hrani (5e-324) |
NEGATIVE_INFINITY |
vrednost Infinity |
NaN |
predstavlja vrednost Not-a-Number |
POSITIVE_INFINITY |
vrednost Infinity |
Primer izpisa maksimalnega in minimalnega števila v JavaScript:
<p id="primerMax"></p>
<p id="primerMin"></p>
<script>
document.getElementById("primerMax").innerHTML =
"Maksimalno število v JavaScript: " + Number.MAX_VALUE;
document.getElementById("primerMin").innerHTML =
"Minimalno število v JavaScript: " + Number.MIN_VALUE;
</script>
Globalne metode
Metoda | Opis |
---|---|
Number() |
Vrne število pretvorjeno iz argumenta. |
parseFloat() |
Razčleni argument in vrne število s plavajočo vejico. |
parseInt() |
Razčleni argument in vrne celo število. |
Metoda Number()
Metoda Number()
se uporablja za pretvorbo JavaScript spremenljivk v števila:
<p id="primer"></p>
<script>
document.getElementById("primer").innerHTML =
Number(true) + "<br>" + //vrne 1
Number(false) + "<br>" + //vrne 0
Number(new Date()) + "<br>" + //vrne število milisekund od 1.1.1970
Number(" 50") + "<br>" + //vrne 50
Number("50 ") + "<br>" + //vrne 50
Number("50 9"); //vrne NaN
</script>
Če uporabimo objekt Date()
, metoda Number()
vrne čas v milisekundah od 1.1.1970.
Metoda parseInt()
Metoda parseInt()
pretvori niz in vrne celo število. Če niz vsebuje presledke, metoda vrne le prvo število. V primeru, da niza ni možno pretvoriti v število, metoda vrne NaN (Not a Number):
parseInt("50"); // vrne 50
parseInt("56.78"); // vrne 56
parseInt("30 40 50"); // vrne 30
parseInt("50 let"); // vrne 50
parseInt("leta 2015"); // vrne NaN
Metoda parseFloat()
Metoda parseFloat()
pretvori niz in vrne decimalno število. Če niz vsebuje presledke, metoda vrne le prvo število. V primeru, da niza ni možno pretvoriti v število, metoda vrne NaN (Not a Number):
parseFloat("50"); // vrne 50
parseFloat("56.78"); // vrne 56.78
parseFloat("30 40 50"); // vrne 30
parseFloat("50 let"); // vrne 50
parseFloat("leta 2015"); // vrne NaN
Metode Number
Metoda | Opis |
---|---|
valueOf() |
Vrne število kot število num. |
toString(osnova) |
Vrne število kot niz. Če je osnova celo število med 2 in 36, a različna od 10, je rezultat odvisen od izvedbe. Če je osnova 10 ali pa ni določena, vrne niz, ki predstavlja število num. |
toFixed(mesta) |
Vrne niz, ki predstavlja število num, zaokroženo na dano število decimalnih mest. |
toExponential(mesta) |
Vrne niz, ki predstavlja število num, zapisano v exponentni obliki in zaokroženo na dano število decimalnih mest (pred decimalno piko je samo ena števka). |
toPrecision(mesta) |
Vrne niz, ki predstavlja število num zapisano na dano število mest natančno. |
Metoda valueOf()
Metoda valueOf()
vrne število kot število. V JavaScriptu je lahko število primitivna vrednost števila ali pa objekt. Metoda valueOf()
se uporablja za pretvarjanje objektov Number
v primitivna števila.
<p id="primer"></p>
<script>
var x = 12345;
document.getElementById("primer").innerHTML =
x.valueOf() + "<br>" + //vrne 12345
(12345).valueOf() + "<br>" + //vrne 12345
(10000 + 2345).valueOf(); //vrne 12345
</script>
Metoda toString()
Metoda toString()
pretvori število v niz. Vse številske metode lahko uporabimo na vsakem tipu števil (nizih, spremenljivkah ali izrazih).
<p id="primer"></p>
<script>
var x = 12345;
document.getElementById("primer").innerHTML =
x.toString() + "<br>" + //vrne 12345
(12345).toString() + "<br>" + //vrne 12345
(10000 + 2345).toString(); //vrne 12345
</script>
Metoda toExponential()
Metoda toExponential()
vrne niz, ki predstavlja število zapisano v exponentni obliki in zaokroženo na dano število decimalnih mest.
<p id="primer"></p>
<script>
var x = 1.23456;
document.getElementById("primer").innerHTML =
x.toExponential() + "<br>" + //vrne 1.23456e+0
x.toExponential(1) + "<br>" + //vrne 1.2e+0
x.toExponential(3) + "<br>" + //vrne 1.235e+0
x.toExponential(7); //vrne 1.2345600e+0
</script>
Metoda toFixed()
Metoda toFixed()
vrne niz, ki predstavlja število zaokroženo na dano število decimalnih mest.
<p id="primer"></p>
<script>
var x = 1.234;
document.getElementById("primer").innerHTML =
x.toFixed(0) + "<br>" + //vrne 1
x.toFixed(1) + "<br>" + //vrne 1.2
x.toFixed(3) + "<br>" + //vrne 1.234
x.toFixed(7); //vrne 1.2340000
</script>
Metoda toPrecision()
Metoda toPrecision()
vrne niz, ki predstavlja število zapisano na dano število mest natančno.
<p id="primer"></p>
<script>
var x = 1.2345;
document.getElementById("primer").innerHTML =
x.toPrecision() + "<br>" + //vrne 1.2345
x.toPrecision(1) + "<br>" + //vrne 1
x.toPrecision(3) + "<br>" + //vrne 1.23
x.toPrecision(7); //vrne 1.234500
</script>