Tengo el valor decimal 18.8. Los valores que se almacenan en esta variable pueden ser de cualquier tipo. Por ejemplo, puede ser 1.0000000 o 1.00004000 o 5.00000008. Me gustaría escribir un método para que pueda pasarle decimal y obtener una cadena redondeada. Esto no sería un problema si quisiera saber los lugares decimales que me gustaría obtener. Pero lo que me gustaría obtener es:Cómo acercarse mejor a los decimales de redondeo en C#
Cuando es 1.0000000 debería devolver 1.
Si es 1.00004000 debería devolver 1.00004.
Cuando es 5.00000008 debe devolver 5.00000008. Así que, básicamente, debería encontrar todos los 0 que están detrás del último dígito diferente de 0 y cortarlo.
¿Cómo debo abordarlo? ¿Cuál es el mejor método? Obtengo este valor de SQL y lo pongo en una variable decimal, pero luego me gustaría mostrarlo y tener 5.0000000 cuando podría mostrarse como 5 es un poco exagerado para mí.
Espero que pueda obtener algunas sugerencias agradables.
En lo que respecta,
MadBoy
No sé la cantidad de lugares decimales que necesito. Esto funcionaría si supiera que quiero cortarlo después de 3 dígitos o más. Pero quiero cortarlo solo si todos los dígitos son ceros después del último cero. – MadBoy
Si tiene 1.00004000, luego de ToString ("0. ####################") tendrá "1.00004". Hablando de MAX de # signos: es 28. Decimal permite un máximo de 28-29 dígitos significativos. Esto hace 1 para el cero inicial y 28 para otros signos. Incluso si tiene algo como 15555.98900008900, estará bien. – terR0Q
Gracias, funciona. Debería haberlo probado antes de dudar de que funcionará como dijiste que sería. – MadBoy