Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2004
song706 song706 is offline
Registrado
 
Registrado: abr 2004
Posts: 1
Poder: 0
song706 Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 27-04-2004
cesargcman cesargcman is offline
Miembro
 
Registrado: jul 2003
Posts: 10
Poder: 0
cesargcman Va por buen camino
Prueba esto

Intenta hacer la misma operación, pero usando la coma ',' en lugar del punto '.' como separador decimal.
Responder Con Cita
  #3  
Antiguo 28-04-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 08-09-2006
Fabian Caminos Fabian Caminos is offline
Miembro
 
Registrado: sep 2006
Posts: 11
Poder: 0
Fabian Caminos Va por buen camino
Hola, que tal

Una de las soluciones es que trate con variables tipo float para numeros con decimal pequeños.
Responder Con Cita
  #5  
Antiguo 08-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:51:29.


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