MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

Obiectul Number

Obiectul Number reprezintă numerele. Pentru a crea un număr, trebuie să furnizezi în constructorul Number un număr sau un șir de caractere care reprezintă un număr:

const x = new Number(34);
const y = new Number('34');
console.log(x+y); // 68

Definițiile lui x și y în acest caz vor fi practic similare.

Cu toate acestea, un obiect Number poate fi creat și prin simpla atribuire a unei variabile cu o valoare numerică:

const z = 34;

Obiectul Number furnizează o serie de proprietăți. Iată câteva dintre ele:

  • Number.MAX_VALUE: cel mai mare număr întreg posibil. Aproximativ egal cu 1.79E+308. Numerele mai mari decât această valoare sunt considerate Infinity
  • Number.MIN_VALUE: cel mai mic număr întreg pozitiv posibil. Aproximativ egal cu 5e-324 (aproape de zero)
  • Number.NaN: o valoare specială care indică faptul că obiectul nu este un număr
  • Number.NEGATIVE_INFINITY: valoare care reprezintă infinitatea negativă și apare în caz de depășire. De exemplu, dacă adunăm două numere negative cu o valoare absolută egală cu Number.MAX_VALUE. De exemplu
const x = -1 * Number.MAX_VALUE;
const y = -1 * Number.MAX_VALUE;
const z = x + y;
if (z === Number.NEGATIVE_INFINITY)
   console.log("Infinitate negativă");
else
   console.log(z);
  • Number.POSITIVE_INFINITY: infinitate pozitivă. La fel ca și infinitatea negativă, apare în caz de depășire, dar acum în direcția pozitivă:
const x = Number.MAX_VALUE;
const y = Number.MAX_VALUE;
const z = x * y;
if (z === Number.POSITIVE_INFINITY)
   console.log("Infinitate pozitivă");
else
   console.log(z);

Iată câteva metode de bază:

  • isNaN(): determină dacă obiectul este un număr. Dacă obiectul nu este un număr, atunci se returnează valoarea true
const a = Number.isNaN(Number.NaN); // true
const b = Number.isNaN(true); // false - new Number(true) = 1
const c = Number.isNaN(null);  // false - new Number(null) = 0
const d = Number.isNaN(25);  // false
const e = Number.isNaN("54"); // false

Dar următoarea expresie va returna fals, chiar dacă valoarea nu este un număr:

const f = Number.isNaN("hello"); // false

Pentru a evita astfel de situații, este mai bine să folosiți funcția globală isNaN:

const f = isNaN("hello"); // true
  • parseFloat(): convertește un șir de caractere într-un număr cu virgulă mobilă. De exemplu:
const a = Number.parseFloat("34.90"); // 34.9
console.log(a);
const b = Number.parseFloat("hello"); // NaN
console.log(b);
const c = Number.parseFloat("34hello"); // 34
console.log(c);
  • parseInt(): convertește un șir de caractere într-un număr întreg. De exemplu:
const a = Number.parseInt("34.90"); // 34
console.log(a);
const b = Number.parseInt("hello"); // NaN
console.log(b);
const c = Number.parseInt("25hello"); // 25
console.log(c);
  • toFixed(): păstrează într-un număr cu virgulă mobilă un anumit număr de zecimale în partea fracționară. De exemplu:
const a = 10 / 1.44;
console.log("Înainte de metoda toFixed(): ", a, "<br/>");
a = a.toFixed(2); // păstrăm două zecimale după virgulă
console.log("După metoda toFixed(): ", a, "<br/>");

Output-ul din browser:

Înainte de metoda toFixed(): 6.944444444444445
După metoda toFixed(): 6.94

Conversie în alt sistem numeric

Mai sus am discutat despre conversia șirurilor în numere în sistemul zecimal. Dar putem specifica explicit cu ajutorul celui de-al doilea parametru că dorim să convertim un șir într-un număr într-un anumit sistem numeric. De exemplu, conversia într-un număr în sistem binar:

const num1 = "110";
const num2 = parseInt(num1, 2);
console.log(num2); // 6

Aici, în funcția parseInt, se furnizează numărul 2 ca al doilea parametru, indicând că primul parametru va fi tratat ca un număr în sistemul binar. Rezultatul va fi 6, deoarece 110 în sistem binar reprezintă numărul 6 în sistemul zecimal.

Pentru a converti un număr în șir de caractere, puteți apela metoda toString():

const num = 10;
console.log(num.toString()); // 10

Din număr în șir de caractere, metoda toString

Cu toate acestea, în acest caz, nu are sens să apelați metoda toString() pe număr, deoarece numărul poate fi afișat pe consolă fără nicio conversie. Cu toate acestea, metoda toString() poate fi utilă - ia ca parametru baza sistemului numeric al numărului și poate fi folosită pentru a afișa numărul într-un anumit sistem numeric:

const num1 = 0b0110;
// afișăm numărul în sistemul binar
console.log(num1.toString(2)); // 110

const num2 = 0xFF;
// afișăm numărul în sistemul hexazecimal
console.log(num2.toString(16)); // ff