Hola a todos, estoy desarrollando un software que usa precisión numérica, pero tengo este problema, sucede que cuando tomo una cadena para convertirla al doble, me envía a una cultura diferente.Convert.ToDouble ("4089.90") genera 40.899,00 ¿por qué?
Por ejemplo yo uso
Convert.ToDouble("4089.90"); // it outputs 40.899,00
es extraño porque en mi equipo que funciona bien, pero en el PC del cliente (con la misma cultura en la configuración regional) me muestra la última salida. Sé que puedo fijarla con
Convert.ToDouble("4089.90", System.Globalization.CultureInfo.InvariantCulture);
pero hay una gran cantidad de código en el programa usando "Convert.ToDouble" y no me gustaría cambiar todos de la misma, por otro lado quiero entender por qué sucede esto.
Gracias de antemano.
¿Qué sistema operativo, etc. para ambas computadoras? – GalacticCowboy
El mío es Windows Vista y las máquinas cliente son XP. –
Esto es una especie de duplicado de todas las demás respuestas, por lo que no estoy publicando como mío. Pero si se proporciona 'InvariantCulture' al método' Convert' corrige el problema, claramente es un problema que involucra culturas. Debe agregar el registro a su programa que genera información de cultivo, y solicite ese registro a los usuarios que informan el problema. Luego puedes volver a ellos y decir: "es porque tienes estas configuraciones en tu computadora: * blah blah *". – jdmichal