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 26-05-2007
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Como sumar un campo entero y un real

Hola a todos, tengo la siguiente pregunta:

como puedo hacer la suma de un numero que es entero y otro que es real, explico lo que estoy hacendo, genero una consulta SQL y el valor lo estos llevando con
Código Delphi [-]
 totcanent := (DMDatos.qryConsultas.FieldValues['Cantidades']);
en las sumas de los enteros funciona perfecto, pero tengo un campo que es decimal(MySQL), en Delphi lo defino como real, y cuando se realiza la suma de los dos (entero y real) me suma mal, es decir tengo un numero entero 10, y un numero real 50.010 los sumo y me quedan 50.020, cuando deberia quedar 60.010.

Que estoy haciendo mal, la verdad le he dado muchas vueltas y no he encontrado una solución que me sirva.

Mil Gracias

Maury
Responder Con Cita
  #2  
Antiguo 26-05-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Quien es q no te suma bien, el Delphi o el gestor de base de datos?

Porque he hecho una prueba y el Delphi suma bien, xD

Código Delphi [-]
var
  n1: Integer;
  n2: Real;
  r: Real;
begin
  n1:=10;
  n2:=50.010;
  r:=n1 + n2;
  ShowMessage(floattostr(r)); // r = 60,01
Responder Con Cita
  #3  
Antiguo 31-05-2007
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Sigo con mi problema, aca paso mi codigo

Gracias por ayudarme.

Código Delphi [-]
 
Procedure calculartotales();
Var consulta : String;
var totcosent, totcanent : integer;
var totcosentf, totcanentf : real;
var totalcosto, totalcantidad : real;
begin
totcosent := 0;
totcanent := 0;
totcosentf := 0;
totcanentf := 0;
//Inicio Calculo de Totales Entrada de Productos
 try
 with DMDatos.QryConsultas do
   begin
   close;
   SQL.Clear;
   consulta := 'SELECT sum(canproducto)as cantidades, sum(canproducto*valproducto) as totales FROM tabdetentrpro t where t.identrada = '+chr(39)+frmEntradas.txtPrimaryKey.Text+char(39);
   SQL.Add(consulta);
   Open;
   frmEntradas.txtTotCanPro.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtCosTotPro.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   frmEntradas.txtTotGenCanPro.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtTotGenCosPro.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   totcanent := (DMDatos.qryConsultas.FieldValues['Cantidades']);
   totcosent := (DMDatos.qryConsultas.FieldValues['totales']);
   end;
  except
   begin
   frmEntradas.txtTotCanPro.Text := '0';
   frmEntradas.txtCosTotPro.Text := '0';
   frmEntradas.txtTotGenCanPro.Text := '0';
   frmEntradas.txtTotGenCosPro.Text := '0';
   end;
  end;
//Fin Calculo de Totales Entradas de Productos
//Inicio Calculo de Totales de Entradas de Material
try
 with DMDatos.QryConsultas do
   begin
   close;
   SQL.Clear;
   consulta := 'SELECT sum(pesmaterial)as peso, sum(pesmaterial*cosmaterial) as totales FROM tabdetentrmat t where t.identrada = '+chr(39)+frmEntradas.txtPrimaryKey.Text+char(39);
   SQL.Add(consulta);
   Open;
   frmEntradas.txtTotCanMat.Text := FormatFloat('#,#.#',DMDatos.qryConsultas.FieldValues['Peso']);
   frmEntradas.txtCosTotMat.Text := FormatFloat('#,#.#',DMDatos.qryConsultas.FieldValues['totales']);
   frmEntradas.txtTotGenCanMat.Text := FormatFloat('#,#.#',DMDatos.qryConsultas.FieldValues['Peso']);
   frmEntradas.txtTotGenCosMat.Text := FormatFloat('#,#.#',DMDatos.qryConsultas.FieldValues['totales']);
   totcanentf := (DMDatos.qryConsultas.FieldValues['Peso']);
   totcosentf := (DMDatos.qryConsultas.FieldValues['totales']);
   end;
  except
   begin
   frmEntradas.txtTotCanMat.Text := '0';
   frmEntradas.txtCosTotMat.Text := '0';
   frmEntradas.txtTotGenCanMat.Text := '0';
   frmEntradas.txtTotGenCosMat.Text := '0';
   end;
  end;
//Fin Calculo de Totales Entradas de Material
//Inicio Calculo de Totales de Entradas de Piedras
try
 with DMDatos.QryConsultas do
   begin
   close;
   SQL.Clear;
   consulta := 'SELECT sum(canPiedra)as cantidades, sum(canPiedra*CosPiedra) as totales FROM tabdetentrpie t where t.identrada = '+chr(39)+frmEntradas.txtPrimaryKey.Text+char(39);
   SQL.Add(consulta);
   Open;
   frmEntradas.txtTotCanPie.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtCosTotPie.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   frmEntradas.txtTotGenCanPie.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtTotGenCosPie.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   totcanent := totcanent + (DMDatos.qryConsultas.FieldValues['Cantidades']);
   totcosent := totcosent + (DMDatos.qryConsultas.FieldValues['totales']);
   end;
  except
   begin
   frmEntradas.txtTotCanPie.Text := '0';
   frmEntradas.txtCosTotPie.Text := '0';
   frmEntradas.txtTotGenCanPie.Text := '0';
   frmEntradas.txtTotGenCosPie.Text := '0';
   end;
  end;
 //Fin Calculo de Totales Entradas de Piedras
//Inicio Calculo de Totales de Entradas de Insumos
try
 with DMDatos.QryConsultas do
   begin
   close;
   SQL.Clear;
   consulta := 'SELECT sum(canInsumo)as cantidades, sum(canInsumo*CosInsumo) as totales FROM tabdetentrins t where t.identrada = '+chr(39)+frmEntradas.txtPrimaryKey.Text+char(39);
   SQL.Add(consulta);
   Open;
   frmEntradas.txtTotCanIns.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtCosTotIns.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   frmEntradas.txtTotGenCanIns.Text := IntToStr(DMDatos.qryConsultas.FieldValues['Cantidades']);
   frmEntradas.txtTotGenCosIns.Text := IntToStr(DMDatos.qryConsultas.FieldValues['totales']);
   totcanent := totcanent + (DMDatos.qryConsultas.FieldValues['Cantidades']);
   totcosent := totcosent + (DMDatos.qryConsultas.FieldValues['totales']);
   end;
  except
   begin
   frmEntradas.txtTotCanIns.Text := '0';
   frmEntradas.txtCosTotIns.Text := '0';
   frmEntradas.txtTotGenCanIns.Text := '0';
   frmEntradas.txtTotGenCosIns.Text := '0';
   end;
 end;
  totalcosto := totcosent + totcosentf;
  totalcantidad := totcanent + totcanentf;
 frmEntradas.txtTotCanEnt.Text := FormatFloat('#,#.#',totalcantidad);
 frmEntradas.txtTotCosEnt.Text := FormatFloat('#,#.#',totalcosto);

me sigue sacando el mismo calculo mal, con los enteros funciona bien, pero al sumar los reales, nada. gracias.

aca hago la bendita suma

totalcosto := totcosent + totcosentf;
totalcantidad := totcanent + totcanentf;

Maury

Última edición por Maury Manosalva fecha: 31-05-2007 a las 19:43:46.
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
Crear dll para un programa del que no tengo entero el código fuente entero seduerey Varios 1 02-05-2007 13:58:08
como obtener un numero entero a raiz de multiplicar dos campo string buzon MS SQL Server 5 10-12-2006 18:03:28
Pasar un real a un entero bosterito Varios 2 02-11-2006 15:23:36
sumar cada digito de un numero entero emenchi34 Varios 9 19-09-2006 23:02:35
Convertir un campo string a entero en consulta serhasae SQL 4 24-08-2006 20:00:02


La franja horaria es GMT +2. Ahora son las 21:53:11.


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