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.




