Hola a todos:
Si hay dos cosas que no soporto de la programación, es trabajar con físicas y con números decimales, y en ambos casos por lo mismo: por la precisión.
Con las físicas es que nunca sabes cómo va a caer un objeto... o si ya ha caído, porque se me han dado casos en que un objeto no para de rebotar contra el suelo, y, aunque parece parado, se está moviendo constantemente milésimas de pixel.
Bueno, pues el caso es que tengo un proyecto en el que manejo cantidades de tipo double. Me pasa lo típico: que tengo que hacer una resta, o una suma, o cualquier operación, y el resultado, en unas ocasiones muy específicas es un valor con un error infinitesimalmente pequeño (por ejemplo, 5 - 5 = 1.389392746957235E-16). Y claro, eso luego no es cero y le dice al usuario que no ha terminado el trabajo, o peor, que el resultado sea negativo y le diga que no tiene cantidad suficiente para realizar la operación, cuando este está viendo "disponible: 5Kg, seleccionado: 5Kg".
¿Existe alguna forma de forzar que las asignaciones de valores a variables se redondéen a 3 decimales, sin tener que poner en todo el código Math.Round(operación, 3) ? Es que es un peñazo de narices, y en (muchas) ocasiones, tendría que hacer la siguiente sustitución:
cant += valor;
cant = Math.Round( cant + valor, 3);
Sí, soy un flojo ¿qué pasa?
Marcadores