Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
  #2  
Antiguo 07-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
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
  #3  
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
  #4  
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
Se pueden comparar tambien decimales en las consultas de sql, quiza deberias tirar por alli, en vez de intentar poner en ella un entero.
Responder Con Cita
  #5  
Antiguo 07-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
radge Va por buen camino
A ver pongamos un ejemplo

precio : 50,50
cantidad : 10
descuento : 50%


Yo hago lo siguiente : 50,50 * 10 - ( 50,50 * 10 * (50 / 100)
Total = 252.5


Yo esto tal como lo hago lo guardo en un "extended" el problema es despues que no veo como transformar ese numero para ponerlo en el sql , yo luego quiero insertarlo en la sql.
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, este numero 252.5 es un decimal, el cual su parte entera es 252. Contra que lo quieres comparar?
Responder Con Cita
  #7  
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
Cita:
SumaTotal := SumaTotal + TotalLinea; (<== esta ultima del tipo extended)
si lo que quieres es que te cuente los decimales en esta suma, lo mejor sera que sumatotal sea extended y una vez hecha toda la suma, entonces pasarla a entero (aunque claro esta, se perderan los decimales)
Responder Con Cita
  #8  
Antiguo 07-08-2008
JeanSolo JeanSolo is offline
Registrado
 
Registrado: abr 2006
Posts: 1
Poder: 0
JeanSolo Va por buen camino
Smile

Hola ! la variable que recibira el resultado debe ser de tipo real o variant
Responder Con Cita
  #9  
Antiguo 08-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
radge Va por buen camino
Ahora tengo otra duda ,


Alb_Importe : string;
ImportResta , SumaTotalLinea, : extended;


Recibo de otro formulario un "String" llamado "ALB_importe"


Código Delphi [-]
ImportFloat := FormatFloat('0.00',SumaTotalLinea); 
ImportFloat := StringReplace(ImportFloat, ',' , '.',[rfReplaceAll,rfIgnoreCase]);
ImportResta := ALB_Importe - SumaTotalLinea;

Es decir yo recibo un string , intento pasarlo a integer y entonces darle formato para poder hacer la resta

gracias , radge

Última edición por radge fecha: 08-08-2008 a las 08:24:19.
Responder Con Cita
  #10  
Antiguo 08-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
strtoint te deberia servir, si es entero, sino strtofloat
Responder Con Cita
  #11  
Antiguo 08-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
He visto que estás empleando el tipo extended en vez de real.¿Es necesario que emplees dicho tipo? Puede que con el real te baste y sobre.

Si se trata de datos monetarios, por lo general es preferible tratar con el tipo Currency, que supuestamente ha sido diseñado para tener una buena precisión es los cálculos monetarios.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
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 08:09:16.


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
Copyright 1996-2007 Club Delphi