Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 17
radge Va por buen camino
Integer y extended

Buenas tengo una tquery donde despues de hacer la sql recojo los datos para operar con ellos de esta forma

Código Delphi [-]
var
   Total_Linea,: Extended;
begin
...
...
       Total_Linea := qry.FieldByName ('cantidad').AsInteger *
                      qry.FieldByName ('price').AsInteger-
                      (qry.FieldByName ('cantidad').AsInteger *
                       qry.FieldByName ('price').AsInteger *
                       (qry.FieldByName ('ALB_Dto').asinteger / 100));


Lo que hago es recoger varios valores que me ha devuelto la sql y multiplicarlos y dividirlos tal cual , he probado con extended porque con integer la última linea que divido /100 no me la pilla.

La cuestión es que con extended me hace el calculo , pero claro despues quiero pasarlo a integer y no veo la forma.

gracias , radge
Responder Con Cita
  #2  
Antiguo 06-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
hola, para dividir enteros, se usa div (3 div 2). para redondear a enteros desde un float, puedes usar round, int, integer, trunc o floor.
Responder Con Cita
  #3  
Antiguo 06-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por coso Ver Mensaje
hola, para dividir enteros, se usa div (3 div 2). para redondear a enteros desde un float, puedes usar round, int, integer, trunc o floor.
Sólo una pequeña observación... no es lo mismo truncar que redondear. Recomiendo que se piense bien que se desea obtener y en base a ello o se redondea o se trunca.

¿Es necesario la parte entera?¿O por el contrario, es más adecuado redondear?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 06-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
cierto. El floor, de la misma manera, redondea para abajo. El int lo puse pero revisando la ayuda veo que devuelve un extended tambien asi que no creo que te sirva, y el integer es un typecast.
Responder Con Cita
  #5  
Antiguo 07-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 17
radge Va por buen camino
Disculpar mi inexperiencia en el mundo de delphi.

Yo lo que quiero obtener es un float ( es decir necesito los decimales) sin redondear.

Tal cual me hace la operación correctamente

Código Delphi [-]
var
   Total_Linea, Dto_Linea, ALB_Dto: Extended;
begin
         if ALB_Dto = null then
            ALB_Dto := 0;
         try
            Total_Linea := qry_LinAlbaran.FieldByName ('cantidad').AsInteger *
                           qry_LinAlbaran.FieldByName ('price').AsCurrency-
                           (qry_LinAlbaran.FieldByName ('cantidad').AsInteger *
                            qry_LinAlbaran.FieldByName ('price').AsCurrency *
                           (ALB_Dto /100));

Pero claro despues no se como recoger ese valor del extended... yo necesitaria devolver un integer para insertar lo a la sql.


Despues otra cosa , esto lo tengo en un bucle con lo cual me gustaria ir sumando todos los valores de total_linea , pero si es extended no se como.

SumaTotal := SumaTotal + TotalLinea; (<== esta ultima del tipo extended)


gracias , radge

Última edición por radge fecha: 07-08-2008 a las 10:37:43.
Responder Con Cita
  #6  
Antiguo 07-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
bueno, un entero no puede tener decimales...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diferencias entre real y extended Delphius Varios 6 05-08-2008 02:10:37
Key o Integer? MaMu Varios 3 31-01-2008 22:47:57
Float o Integer Caral Varios 9 24-11-2006 10:23:31
incompatible integer and extended emiliu Varios 3 09-12-2005 19:45:16
de String a Integer!! kye_z Varios 2 20-11-2004 20:04:36


La franja horaria es GMT +2. Ahora son las 10:50:34.


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