Problema: Anche se non si può parlare proprio di bug, vorrei risolvere il problema di Math.Round(), davanti al quale mi sono trovato diverse volte:
Console.WriteLine(Math.Round(1.5));
Console.WriteLine(Math.Round(2.5));
Console.ReadLine();
Restituisce 2 in entrambi i casi. E non va assolutamente bene nelle nostre applicazioni dove in generale vogliamo arrotondare alla cifra precedente il numero che termina con 0-4 e alla cifra successiva il numero che termina con 5-9.
Soluzione: Diverse le soluzioni in rete, tutte matematiche. Correggo ciò che avevo scritto precedentemente, grazie al suggerimento di Stefano, per segnalare la presenza di un overload:
Console.WriteLine(Math.Round(1.5, MidpointRounding.AwayFromZero));
Console.WriteLine(Math.Round(2.5, MidpointRounding.AwayFromZero));
Console.ReadLine();
che restituisce il risultato corretto
Technorati tags:
Csharp