No estoy viendo el resultado que espero con Math.Round.Redondeo a par en C#
return Math.Round(99.96535789, 2, MidpointRounding.ToEven); // returning 99.97
Según entiendo MidpointRounding.ToEven, el 5 en la posición milésimas debe causar que la salida sea 99.96. ¿No es este el caso?
Incluso he intentado esto, pero volvieron 99,97 así:
return Math.Round(99.96535789 * 100, MidpointRounding.ToEven)/100;
¿Cuál falto
Gracias!
¿Entonces lo que dices es que quieres _round_ a un número que está _más lejos_? Esa es una extraña definición de "redondeado". –
Eso es redondeo bancario para usted. No es de extrañar que estemos en este lío ;-) –
No, eso no es un redondeo bancario. El redondeo bancario es cuando eliges redondear a par * cuando las dos opciones son igualmente distantes *. No estás en una situación donde las dos opciones son igualmente distantes. Uno de ellos está más cerca que el otro, y usted quiere elegir el que está más lejos. –