Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   suma con decimales (https://www.clubdelphi.com/foros/showthread.php?t=37909)

Jheysson13 26-11-2006 01:30:23

suma con decimales
 
Hola, salu2.
quisisera que me ayudaran con una duda. por que cuando hago una suma sql
con campos cuyos valoresson decimales el resultado me es dado redondeado, aki les dejo la consultas:

Código Delphi [-]
var ind:real;

qnotas.Close;
qnotas.SQL.Clear;
qnotas.SQL.Add('select sum(indice)as total from notas where matricula='+#39+matricula2.Text+#39+'and ciclo='+#39+ciclo.Text+#39);
qnotas.Open;
ind:=strtofloat(formatfloat('#,0',qnotas.Fieldbyname('total').AsFloat));

ind:=ind/notas.RecordCount;

notas:es otra tabla
qnotas:es el query

si es posible me podrian explicar porque si los campos localizados por la consultas son de 3.5, y 4.00 el resultado es 8 exacto y cuandolo divido entre dos claro que sera 4.
como hagopara que no me redondee los campos.

graciasy sula2.

Jheysson13 26-11-2006 01:47:30

Perdonen pero ya no se molesten
lo que sucede esque no tenia que realizar tantas conversiones, medi cuentas despues de enviar la respuesta.
solo tenia que aser esto :
Código Delphi [-]
qnotas.Close;
qnotas.SQL.Clear;
qnotas.SQL.Add('select sum(indice)as total from notas where matricula='+#39+matricula2.Text+#39+'and ciclo='+#39+ciclo.Text+#39);
qnotas.Open;
ind:=strtofloat(qnotas.Fieldbyname('total').AsFloat);

ind:=ind/notas.RecordCount;


espero que estole sirva si algun diacometen este error.
salu2

FOURIER 28-11-2006 09:02:26

Espero te sirva
 
prueba con


ind:=strtofloat(formatfloat('###,##0.00',qnotas.Fieldbyname('total').AsFloat));


Aunque si no lo vas a visualizar aun no deberías usar el formatfloat, es decir

ind:=qnotas.Fieldbyname('total').AsFloat;


bastaría; claro que debes tener cuidado si es vacio
ind:=0;
if qnotas.Fieldbyname('total').AsFloat<>'' then
ind:=qnotas.Fieldbyname('total').AsFloat;


Espero te sirva


La franja horaria es GMT +2. Ahora son las 23:14: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