Načrtovanje in razvoj spletnih aplikacij

Razred Number

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>