Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2006
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Como aproximar un tipo float (double) a entero??

Buenas tardes.
Tengo un problema de "floating point division by zero"... y creo que la solucion es trabajar con enteros....necesito un metodo para solucionar este inconveniente....
Gracias por su ayuda.
El tipo double es igual al float? puedo pasar double a entero en builder C++?
Gracias.
Responder Con Cita
  #2  
Antiguo 30-09-2006
d5y d5y is offline
No confirmado
 
Registrado: sep 2006
Ubicación: mexico
Posts: 2
Poder: 0
d5y Va por buen camino
Post respuesta

hola amigo bueno me gustaria que me dieras mas datos sobre lo que tratas hacer para solucionar tu problema la verdad no le entiendo bien pero te tratare de ayudar.

como primer punto no puedes usar entero como un flotante ya que este no tiene la misma cantidad de bytes para almacernar todos los digitios en memoria.

ahora si suponemos que tienes una variable de tipo flotante por ejemplo FLOTANTE=123.50; y lo quieres pasar a un doble tienes que usar una conversion.
checa este ejemplo es codigo y funciona usa un boton y 2label's

float flotante=123.50; //declaramos una variabel tipo flotante
int entero; //declaramos una variable tipo entero donde va a caer el valor de la variable de tipo flotante
Label1->Caption=flotante;//mandamos en valor a una etiqueta para que lo puedas ver como funciona
entero=Label1->Caption.ToDouble();//le decimos que convierta el valor de la etiqueda a doble, pero ojo la variable es entero
Label4->Caption=entero;//por ultimo mandamos el valor de la variable entero a una etiqueta para que veas como funciona

/*ojo olvidate de los digitos despues del cero cuando conviertes, se eliminan, ten cuidado con eso/*

para mayor infomacion te dejo esto

tipo tamaño de bytes rango minimo y maximo
int 2 -32768....32767
float 4 3.4*10-38........3.4*1028
double 8

no exedas la cantidad de bytes al convertir cualquier duda si la quieres aclarar me contactas, y recuerda cuando puedas ayuda a alguien, devuelve el favor
Responder Con Cita
  #3  
Antiguo 30-09-2006
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
gracias

Amigo mi problema es que tengo un tipo double y necsito compararlo con un entero...en esa comparacion double>int, me arroja el error de floating point divide by zero
Responder Con Cita
  #4  
Antiguo 30-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por JuanErasmo
Buenas tardes.
Tengo un problema de "floating point division by zero"... y creo que la solucion es trabajar con enteros....
Una división por cero dará siempre, por definición, un error de división por cero, dado que matemáticamente dicha operación no es posible. Si trabajas con enteros, entonces solo cambiará el mensaje de error, pero no dejará de haber problema.

Si el error no debiera ocurrir, la solución es verificar primero si el denominador de la división es cero y si lo es, actuar como tu diseño lo ordene.

Código:
  if (divisor != 0}
    cociente = dividendo/divisor;
  else
    cociente = valorPorDefecto;
    //por poner un ejemplo...
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 30-09-2006
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
El problema es que yo no hago la division...

Hola amigos y graacias...
el problema es que yo no efectuo ninguna operacion...es una funcion de un componente....pero es que el dato que esta me entrega es un double... y yo lo comparo con un float o int...pero no funciona....
El caso es ...aproximar el coeficiente....y botar la parte flotante..trabajar solo con enteros...
Gracias
Responder Con Cita
  #6  
Antiguo 30-09-2006
d5y d5y is offline
No confirmado
 
Registrado: sep 2006
Ubicación: mexico
Posts: 2
Poder: 0
d5y Va por buen camino
convertir float y double a enteros

bueno amigo mira si quieres convertir un double o un float a entero tienes que hacer una conversion forzada aqui te pongo un ejemplo, pero creo que tu problema es otro, pero bueno aqui esta como convertir, espero te sirva, ahh otra cosa yo lo probe con c++ builder 6, y funciona

double primero=145.23; //declaramos una varible de tipo doble
float segundo=145.23; //declaramos una varibale de tipo flotante
int tercero=0; //aqui va a caer la primera variable cuando ya sea entero
int cuarto=0; //aqui va a caer la segunda variable cuando ya sea entero
ShowMessage(primero); //vemos en pantalla lo que tiene la variable 1
ShowMessage(segundo); //vemos en pantalla lo que tiene la variable 2

tercero=int(primero); //convertimos en entero la variable 1 y cae en 3
cuarto=int(segundo); //convertimos en entero la variable 2 y cae en 4
ShowMessage(tercero);//vemos en pantalla lo que tiene la variable 3 ya es entero
ShowMessage(cuarto); //vemos en pantalla lo que tiene la variable 4 ya es entero
if (tercero==cuarto)//condicion de comparacion y lo demas esta facil.
ShowMessage("son iguales");
else
ShowMessage("Son diferentes");

todo el codigo metelo en un boton y pruebalo, me avisas si te sirve, suerte amigo, de donde eres?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campos del tipo Float......y delphi inexperto Conexión con bases de datos 4 19-12-2007 01:05:15
Usar tipo de datos double con mysql..... uper MySQL 2 18-10-2005 21:31:42
Guardar un tipo double quade MySQL 3 04-06-2004 20:22:27
numeric-double precision-decimal-float Giniromero Firebird e Interbase 1 14-08-2003 19:31:29
suma de datos tipo float marys Impresión 1 05-06-2003 21:08:00


La franja horaria es GMT +2. Ahora son las 02:46:24.


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