En C#. Tengo un doble (que he extraído de una base de datos) que tiene una precisión de 20 dígitos. En Visual Studio (usando QuickWatch) puedo ver que el valor del doble es = 0,00034101243963859839.C# Conversión de precisión de 20 dígitos de doble a cadena y viceversa
Quiero mostrar este valor en un cuadro de texto y luego tener el mismo valor cuando lo saque y lo vuelva a convertir en un doble. Pero siempre pierdo los dos últimos dígitos
He intentado lo siguiente:
double d = 0.00034101243963859839;
string s = d.ToString();
string s2 = d.ToString("F20");
string s3 = d.ToString("0.00000000000000000000"); -- 20 0's
string s4 = (d*100d).ToString();
En estos casos:
s = 0.000341012439638598 s2 = 0.00034101243963859800 s3 = 0.00034101243963859800 s4 = 0.0341012439638598
Quiero ser capaz de hacer lo siguiente:
double d = 0.00034101243963859839;
string s = d.ToString();
//...
double d2 = double.Parse(s);
if(d == d2)
{
//-- Success
}
¿Hay alguna manera de mantener esos dos últimos dígitos de precisión?
Perfecto. ¡Gracias! –
Me has ayudado aquí http://stackoverflow.com/q/18553687/114029. ¡Gracias! –
"Como un lado, sospecho que no hay forma de mantener esos dos últimos dígitos". - Pero, ¿cómo puede Visual Studio "ver" esos dos dígitos? –