Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   cantidad de decimales en campo float (https://www.clubdelphi.com/foros/showthread.php?t=55978)

look 03-05-2008 17:40:04

cantidad de decimales en campo float
 
hola compañeros del foro , trabajo con una base en MSSQL ,tengo el siguiente problema con un campo de tipo float, cuando posteo registros en las tablas para limitar la cantidad de decimales que se guarden utilizo el FormatFloat este trabaja bastante bien el problema es que cuando trato los datos con querys para actualizar los campos con operaciones como multiplicaciones o divisiones estos generan muchos decimales , ahora la cosa es q sera posible al diseñar la tabla limitar la a una cantidad x de decimales el campo o hay otra manera ?...

http://img177.imageshack.us/my.php?image=imagenxx8.jpg

ContraVeneno 03-05-2008 18:03:54

Podrías utilizar el tipo de dato "Decimal" de SQL Server, en el cuál le defines el número de decimales que quieres manejar. La única restricción es que tienes que definir la cantidad de dígitos enteros mayor a la cantidad de dígitos decimales.

Ahora que si lo que estas manejando son datos monetarios, lo mejor es usar el tipo "Money", el cuál solo permite 4 decimales y al pasarlo a un DBGRid, automáticamente te pone el formato tipo moneda.

o tambien, al hacer la operación, podrías utilizar la función "CAST".

Código SQL [-]
Select Cast(123.234/23.23454 as Decimal(10,2))

look 03-05-2008 18:26:00

gracias por responder amigo Contraveneno , analize la situacion y tal parece que el problema no necesariamente biene de alli ,....

el problema es que tengo un reporte de ventas y :

http://img517.imageshack.us/my.php?image=reportemi3.jpg

es el que esta en esta imagen detras de la hoja de excel , y luego en la hoja de excel sumo los datos para que vean , tiene que ver con los decimales ya de alguna manera en el reporte este redondea los campos pero al hacer la sumatoria no concuerda ... espero explicarme bien...

ContraVeneno 05-05-2008 15:51:19

Pues supongo que solo bastaría con darle 4 decimales al formato del total en el reporte.

Si utilizas QuickReport, el QRDBText tiene la propiedad Mask, que puedes editar para darle los 4 decimales.

Pero al ver los datos que manejas, sería muy muy recomendable que los datos lo definieras como "money" desde tu base de datos y que utilizaras el cast al hacer la operación, así no tendrías porqué preocuparte por estos menesteres.

Código SQL [-]
Select Cast(123.234/23.23454 as money)

look 05-05-2008 20:03:25

perfectamente esta fue la solucion

Código SQL [-]
Select Cast(123.234/23.23454 as money)

Gracias amigo ContraVeneno :)

gonza_619 04-10-2010 18:53:54

pues bien mi problema es que por un lado tengo un campo tipo integer y por otro un campo tipo Money$, bien el problema es que quiero restarlos y sumar registros entre esos campos, la verdad que no se si conviene cambiar el tipo campo money a otro que permita punto flotante ej(180,50) o (1200,80), bien
pero nose caul tipo de campo seria en PARADOX.
Bueno espero puedan ayudarme,


La franja horaria es GMT +2. Ahora son las 15:25:23.

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