Questa è una breve guida su come arrotondare un numero a 2 cifre decimali usando JavaScript. Nell’esempio che segue, fornirò anche un’alternativa JavaScript alla funzione number_format di PHP.
Guardate la funzione JavaScript personalizzata qui sotto:
/** * Custom JavaScript function that rounds a number w/ * decimal places. * * @param val - The value that you want to format with decimal places. * @param decimals - The number of decimal places that should be used. * @returns {float} */function number_format(val, decimals){ //Parse the value as a float value val = parseFloat(val); //Format the value w/ the specified number //of decimal places and return it. return val.toFixed(decimals);}
Ho chiamato questa funzione number_format perché è il nome di una popolare funzione PHP che esegue un’operazione simile.
La nostra funzione personalizzata prende due parametri:
- val: Il numero che vogliamo arrotondare.
- decimali: Il numero di decimali a cui il numero deve essere arrotondato.
Nella nostra funzione, abbiamo analizzato la variabile val come un float usando la funzione parseFloat di JavaScript. Abbiamo fatto questo in modo che la nostra funzione possa gestire anche le variabili stringa. Se non riuscite ad analizzare una variabile stringa prima di usare il metodo toFixed(), il vostro codice lancerà il seguente Uncaught TypeError:
Uncaught TypeError: val.toFixed is not a function
Questo perché il numero.prototype.toFixed() può essere usato solo con le variabili Number come i float e gli interi.
Nota che a differenza della funzione number_format di PHP, questa funzione non aggiunge i separatori delle migliaia.
Puoi testare questa funzione utilizzando i seguenti esempi:
console.log(number_format(2.333, 2)); //Result: 2.33console.log(number_format("9.01345", 2)); //Result: 9.01console.log(number_format(5, 2)); //Result: 5.00console.log(number_format("383.48910093", 4)); //Result: 383.4891console.log(number_format(33.92039, 1)); //Result: 33.9
Come puoi vedere, questa funzione può gestire sia numeri che stringhe:
- Siamo stati in grado di arrotondare il float 2.333 a 2 cifre decimali.
- La stringa “9.01345” è stata arrotondata a 9.01.
- Un numero intero come 5 diventerà “5.00”, con due zeri aggiunti dietro la posizione decimale.
- Per “383.48910093”, abbiamo cambiato il secondo parametro in 4. Questo ha arrotondato il numero a 4 posizioni decimali, risultando in 383.4891.
- Infine, abbiamo arrotondato 33.92039 a 1 posizione decimale, risultando in 33.9.
Spero che abbiate trovato utile il codice qui sopra!