sql语句中的sum函数的问题,请进!!帮忙!!

喜欢编程朋友 2005-08-23 10:08:45
我在程序中调用sql语句的sum功能是怎么出现很多小数位??
也就是Access数据库,数据库里面有五万条数据。语句如下:
var
tsum:Real;
ADOQconn.close;
ADOQconn.sql.clear;
ADOQconn.sql.test:='select sum(wsize) as wsum from kzk';
ADOQconn.open;
tsum:=ADOQconn.fieldbyname('wsum').asFloat;

结果:数据库kzk里面的wsize字段的值都是两位小数,而求和之后的数据tsum的值为7位小数,这是怎么回事??怎么出现这种情况的,所有的wsize字段的值为两位小数,结果应该也是两位小数的,怎么会出现7位小数呢??请帮忙!!
...全文
257 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
menglixueren 2005-08-23
  • 打赏
  • 举报
回复
这是数据库根据数据类型进行统计的结果。你可以根据情况做一下处理:
1、如果你想把求和的结果作四舍五入处理的话,你就用round()函数获取两位小数;
2、如果只是单纯的保留两位小数,那么你就可以用Format()来作转换。
konhon 2005-08-23
  • 打赏
  • 举报
回复
ADOQconn.sql.test:='select round(sum(wsize), 2) as wsum from kzk';
hqhhh 2005-08-23
  • 打赏
  • 举报
回复
tsum:=ADOQconn.fieldbyname('wsum').AsCurrency!
gxgyj 2005-08-23
  • 打赏
  • 举报
回复
.asCurrency
smiler007 2005-08-23
  • 打赏
  • 举报
回复
这是浮点数计算的结果,你可把显示调整为2位小数就是
如果在一个EDIT中显示,则

Edit1.Text:=FormatFloat('#,##0.00',tsum);

如果在DBGRID中显示,则设置该字段的DisplayFormat为#,##0.00
82wds 2005-08-23
  • 打赏
  • 举报
回复
同意二楼
Teng_s2000 2005-08-23
  • 打赏
  • 举报
回复
round就可以解决

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧