JavaScript:
Arrotondamento dei numeri
Come fare:
Ecco come arrotondare i numeri in JavaScript usando Math.round()
, Math.ceil()
e Math.floor()
:
let numeroOriginale = 2.567;
let arrotondatoVersoIlBasso = Math.floor(numeroOriginale); // 2
let arrotondatoVersoL'Alto = Math.ceil(numeroOriginale); // 3
let arrotondato = Math.round(numeroOriginale); // 3 (poiché .567 è maggiore di .5)
console.log(arrotondatoVersoIlBasso); // Stampa: 2
console.log(arrotondatoVersoL'Alto); // Stampa: 3
console.log(arrotondato); // Stampa: 3
Per fissare un certo numero di decimali, usa toFixed()
:
let dueDecimali = numeroOriginale.toFixed(2); // "2.57" (restituisce una stringa)
console.log(dueDecimali); // Stampa: "2.57"
Converti la stringa di nuovo in un numero con un’unario più o Number()
:
let diNuovoNumero = +dueDecimali; // 2.57
console.log(diNuovoNumero); // Stampa: 2.57
Approfondimento
Arrotondare i numeri non è una novità; è vecchio quanto i numeri stessi. In JavaScript, Math.round()
utilizza il criterio di arrotondamento “arrotonda per eccesso”: se la parte frazionaria è 0,5, arrotonda al numero pari più vicino.
Per un controllo maggiore, toFixed()
potrebbe essere la tua scelta prediletta, ma ricorda, restituisce una stringa. Convertirla di nuovo in un numero potrebbe essere un passaggio in più, ma assicura che continui a lavorare con tipi numerici.
Alternative? Librerie come lodash
offrono _.round(number, [precision=0])
per un controllo più sfumato. Oppure, il più recente Intl.NumberFormat
ti offre formattazioni ad alta precisione oltre il semplice arrotondamento.
Parlando di precisione, attenzione alle peculiarità dei numeri in virgola mobile in JavaScript. 0.1 + 0.2
non è esattamente uguale a 0.3
a causa di come i numeri sono memorizzati. A volte, l’arrotondamento diventa necessario per correggere tali errori di floating-point.
Vedi Anche
- La documentazione di Math di Mozilla: MDN Web Docs
- Arrotondamento finanziario con
Intl.NumberFormat
: API di Internazionalizzazione ECMAScript - Arrotondamento con
lodash
: Documentazione di Lodash