Viendo una pregunta en un foro, recordé un pequeño problema que tuve en su momento con C en Solaris (unix de Sun) y que nos trajo de cabeza a mí y a unos compañeros mios bastante tiempo.
El problema es que los decimales desaparecian al echar cuentas. Un programa tan tonto como este
main()
{
double a=5.4;
double b=0.1;
cout << a-b << endl;
}
daba de resultado 5, en vez de 5.3. Los decimales desaparecían. El problema era la variable de entorno LANG. Estaba definida por defecto a es (de español)
LANG=es;
export LANG;
Esto hacía que el compilador se liara. Consideraba que el punto decimal debía ser la , en vez de el . y de alguna forma, ignoraba los decimales.
Simplemente cambiándola por
LANG=c
export LANG;
y volviendo a recompilar el programa... ¡Todo arreglado!
14 julio 2005
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario