Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   AYUDA, Kylix 3.0 y números reales C++ (https://www.clubdelphi.com/foros/showthread.php?t=9147)

song706 15-04-2004 13:17:47

AYUDA, Kylix 3.0 y números reales C++
 
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

cesargcman 27-04-2004 06:40:48

Prueba esto
 
Intenta hacer la misma operación, pero usando la coma ',' en lugar del punto '.' como separador decimal.

Julià T. 28-04-2004 00:18:49

En Kylix pascal ocurre lo mismo cuando les asignas manualmente un valor, no cuando pasas valores entre variable;
Código:

  N:=2.2;//pasa a ser 0.00022 lo divide por 10000
  N:=2+2/10; //da correctamente 2.2


Fabian Caminos 08-09-2006 00:28:43

Hola, que tal

Una de las soluciones es que trate con variables tipo float para numeros con decimal pequeños.

Caral 08-09-2006 00:46:22

Hola
Por alguna razon que desconozco en C en mis viejos tiempos cuando se hacian cosas como estas si mas no me acuerdo habia que encerrar uno de los parametros de la variable, no se por que lee los dos parametros por separado lo pedor que podria pasar es que te diera 5.5

double numero;
numero = (3.5) + 2.2;

Variable Numero= 5.5

Es una idea mas
Saludos


La franja horaria es GMT +2. Ahora son las 01:31:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi