Arrotondare un valore in C# con Round



Il metodo statico Round() fa parte della classe Math (namespace System).
Essendo statico è possibile richiamarlo senza dover creare un oggettoMath.

Questo metodo ha diversi overload, vediamo innanzitutto quello più semplice:


Math.Round(double a);

Prima di vederne bene il funzionamento, vediamo altri tipi di overload:


Math.Round(double a, int digits);

Math.round(double a, int digits, MidpointRounding mode);

Il funzionamento è abbastanza ovvio, il primo overload arrotonda il numero a all’intero più vicino, il secondo fa lo stesso ma arrotonda anche i decimali, lasciandone solo in base a quanto specificato da digits.

Il terzo è il più interessante, dato che permette di scegliere il tipo di arrotondamento tramite l’enumeratore MidpointRounding.
Questo ha due possibili valori: ToEven e AwayFromZero.
Quello impostato di default è ToEven, che, se il numero si trova a metà tra due valori sceglie quello pari più vicino, ad esempio:


Math.Round(0.5, 0, MidpointRounding.ToEven);

Da come risultato 0.
AwayFromZero, come dice la parola stessa, se il numero è a metà tra due valori di cui uno è 0, sceglie l’altro.
Ad esempio:


Math.Round(0.5, 0, MidpointRounding.AwayFromZero);

Da come risultato 1.

Ricerche effettuate:

  • arrotonda c#
  • c# arrotondare un numero
Condividi su Facebook Condividi su Twitter!
Pinterest