[TIPS&TRICKS] Numeri decimali e arrotondamenti all’intero

JavaScript

A differenza di altri linguaggi (ad es., PHP), ed a meno di ricorrere a qualche plugin jQuery (ad es., number), Javascript non ha una funzione built-in o nativa per determinare in modo diretto quanti decimali (generalmente, due) debba avere un numero, intero o meno (ad es., 1.00 o 1.50).
A tale lacuna di solito si rimedia attraverso il metodo toFixed(), il quale consente sì di ottenere il numero voluto di cifre decimali (da passargli come argomento), ma restituisce sempre una stringa, che è poi opportuno trasformare in numero, ad esempio attraverso l’ulteriore metodo parseFloat() (cfr. Soluzione 1), oppure assegnando al risultato stesso il valore positivo (cfr. Soluzione 2).

<script>
function FuncDecimale1() {
  var mioNumero = 123.456;
  var duedecimali_stringa = mioNumero.toFixed(2);
  var duedecimali_numero = parseFloat(mioNumero.toFixed(2));
  alert (duedecimali_stringa + " ("+ typeof duedecimali_stringa +")\n"+duedecimali_numero + " ("+ typeof duedecimali_numero +")");
}
</script>
<button onclick="FuncDecimale1()">OK</button>


<script>
function FuncDecimale2() {
  var mioNumero = 123.456;
  var duedecimali_stringa = mioNumero.toFixed(2);
  var duedecimali_numero = +((mioNumero).toFixed(2));
  alert (duedecimali_stringa + " ("+ typeof duedecimali_stringa +")\n"+duedecimali_numero + " ("+ typeof duedecimali_numero +")");
}
</script>
<button onclick="FuncDecimale2()">OK</button>


Per l’arrotondamento del decimale al numero intero è possibile usare i metodi:
Math.round([numero]), per arrotondare secondo le regole standard (123,4 -> 123 e 123,5 -> 124)
Math.ceil([numero]), per arrotondare in ogni caso per eccesso (ad es., 123,99 -> 123).
Math.floor([numero]), per arrotondare in ogni caso per difetto (ad es., 123,01 -> 124).

<script>
function arrotonda1() {
  var mioNumero = 123.456;
  var intero1 = Math.round(mioNumero);
  var intero2 = Math.ceil(mioNumero);
  var intero3 = Math.floor(mioNumero);
  alert (intero1 + " (round), " + intero2 + " (ceil), " + intero3 + " (floor)");
}
</script>
<button onclick="arrotonda1()">OK</button>


PHP

La funzione round($numero, [numerodecimali]) consente di ottenere il numero voluto di cifre decimali.
Per l’arrotondamento del decimale al numero intero è possibile usare le funzioni:
round($numero), per arrotondare secondo le regole standard (123,4 -> 123 e 123,5 -> 124)
ceil($numero), per arrotondare in ogni caso per eccesso (ad es., 123,99 -> 123).
floor($numero), per arrotondare in ogni caso per difetto (ad es., 123,01 -> 124).

tips&tricks

Related Articles

0 Comment

Rispondi