song706
15-04-2004, 13:17:47
Vaya, vaya quién lo iba a decir, después de tanto
tiempo programando he dado de bruces con un problema
que si bien no deja de ser estúpido, y probablemente
la solución sea evidente, me tiene atado de pies y
manos,
Pués bien les contaré:
Como supongo que sabrán, en C suelen usarse los tipos
float y double para manejar datos reales, con lo que
una expresión tal que así:
double numero;
numero = 3.5 + 2.2;
debería asignar a la variable numero el valor real
5.7,
pués bien, desarrollando una aplicación sobre Kylix
3.0 y en C, me he encontrado con que se salta a la
torera los decimales, y me guarda en la variable
numero el valor 5 (se come el 0.7)
He pensado que podría estar presentándolo mal por
pantalla, (nos ha pasado a todos) pero no es el caso,
entonces pensé que podría ser alguna opción en el
compilador, pero tampoco es el caso, tanbién probé con
refundición de tipos (casting) haciendo:
numero = (float)(3.5+2.2);
y cosas como:
(float) (numero) = (float) (3.5+2.2);
pero nada de nada, y por último pensé que no tengo ni
puta idea... que sí es el caso,
alguien puede mostrarme la luz,
estoy seguro que es una tontería pero ya se sabe:
cuanto más estúpido es el motivo más ciegos estamos
para verlo...
Un saludo, y gracias
tiempo programando he dado de bruces con un problema
que si bien no deja de ser estúpido, y probablemente
la solución sea evidente, me tiene atado de pies y
manos,
Pués bien les contaré:
Como supongo que sabrán, en C suelen usarse los tipos
float y double para manejar datos reales, con lo que
una expresión tal que así:
double numero;
numero = 3.5 + 2.2;
debería asignar a la variable numero el valor real
5.7,
pués bien, desarrollando una aplicación sobre Kylix
3.0 y en C, me he encontrado con que se salta a la
torera los decimales, y me guarda en la variable
numero el valor 5 (se come el 0.7)
He pensado que podría estar presentándolo mal por
pantalla, (nos ha pasado a todos) pero no es el caso,
entonces pensé que podría ser alguna opción en el
compilador, pero tampoco es el caso, tanbién probé con
refundición de tipos (casting) haciendo:
numero = (float)(3.5+2.2);
y cosas como:
(float) (numero) = (float) (3.5+2.2);
pero nada de nada, y por último pensé que no tengo ni
puta idea... que sí es el caso,
alguien puede mostrarme la luz,
estoy seguro que es una tontería pero ya se sabe:
cuanto más estúpido es el motivo más ciegos estamos
para verlo...
Un saludo, y gracias