Estamos almacenando datos financieros en una base de datos de SQL Server utilizando el tipo de datos decimal y necesitamos 6-8 dígitos de precisión en el decimal. Cuando recuperamos este valor a través de nuestra capa de acceso a datos en nuestro servidor C#, vuelve como el tipo de datos decimales.Cómo convertir de forma segura de un doble a un decimal en C#
Debido a algunas limitaciones de diseño que están fuera de mi control, es necesario convertirlo. Convertir a una cadena no es un problema. La conversión a un doble es como dice la documentación de Microsoft "[la conversión de decimal a doble] puede producir errores de redondeo porque un número de punto flotante de precisión doble tiene menos dígitos significativos que un decimal".
Como el doble (o cadena) podemos redondear a 2 lugares decimales después de realizar cualquier cálculo, entonces, ¿cuál es la forma "correcta" de hacer la conversión decimal para garantizar que no perdemos ninguna precisión antes del redondeo ?
Según MSDN, el decimal tiene una precisión de 28-29 dígitos y el doble tiene 15-16. Pero si solo está almacenando de 6 a 8 dígitos, entonces creo que el redondeo no lo afectará. Esto podría ser probado en una unidad fácilmente para ver. – nithins