Mi consejo: deja de usar double
en primer lugar. Si necesita un redondeo decimal, entonces las probabilidades son buenas, debería usar decimal
. ¿Cuál es tu aplicación?
Si usted tiene un doble, puede hacerlo de esta manera:
double r = whatever;
decimal d = (decimal)r;
decimal truncated = decimal.Truncate(d * 100m)/100m;
Tenga en cuenta que esta técnica fallará si el valor absoluto de la doble es más grande que 792281625142643375935439504, debido a que la multiplicación por 100 fallará . Si necesita manejar valores tan grandes, entonces deberá usar técnicas especiales. (Por supuesto, en el momento en una doble es tan grande, que están mucho más allá de su capacidad para representar los valores con dos dígitos después de la coma decimal de todos modos.)
Si eres haciendo trabajo en * decimal *, ¿por qué estás usando * doble * cuando podrías estar usando * decimal *? –
Puede ir a esta publicación y encontrar lo que le conviene http://how-to-code-net.blogspot.ro/2012/09/how-to-format-number-to-x-decimal.html –