Number.prototype.toLocaleString în JavaScript

Numere și matematică Toate browserele moderne, Node.js

Formatează un număr după obiceiurile unei țări: separatori, monedă, procente, unități.

Sintaxă
numar.toLocaleString(limba, optiuni)

Ce face Number.prototype.toLocaleString

toLocaleString("ro-RO") scrie numărul cum se obișnuiește în România: punct pentru mii și virgulă pentru zecimale (1.234,5).

Cu al doilea parametru alegi stilul: { style: "currency", currency: "RON" } pentru lei, { style: "percent" } pentru procente, { minimumFractionDigits: 2 } pentru număr fix de zecimale. Pentru multe numere formatate la fel, un obiect Intl.NumberFormat creat o dată este mai rapid.

Parametri

Parametru Descriere
limba Opțional. Codul limbii și țării, de exemplu "ro-RO" sau "en-US".
optiuni Opțional. Stilul: style, currency, minimumFractionDigits, maximumFractionDigits, unit etc.

Ce returnează

Un șir de caractere.

Exemple

Exemplul 1: România și Statele Unite

const suma = 1234567.891;

console.log(suma.toLocaleString("ro-RO"));
console.log(suma.toLocaleString("en-US"));
console.log(suma.toLocaleString("de-DE"));

Rezultat

1.234.567,891
1,234,567.891
1.234.567,891

Exemplul 2: Lei, procente și unități

console.log((149.9).toLocaleString("ro-RO", { style: "currency", currency: "RON" }));
console.log((0.19).toLocaleString("ro-RO", { style: "percent" }));
console.log((12).toLocaleString("ro-RO", { minimumFractionDigits: 2 }));
console.log((85).toLocaleString("ro-RO", { style: "unit", unit: "kilometer-per-hour" }));

Rezultat

149,90 RON
19 %
12,00
85 km/h

Greșeli frecvente

  • Apelezi toLocaleString() fără limbă. Rezultatul depinde de setările calculatorului vizitatorului, deci arată diferit de la om la om.
  • Transformi înapoi în număr textul formatat: Number("1.234,5") dă NaN. Formatează doar la afișare, nu înainte de calcule.

Comenzi înrudite