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 |
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".
|
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... |
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.
|
perfectamente esta fue la solucion
Gracias amigo ContraVeneno :) |
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