导航
  • 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

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位小数呢??请帮忙!!
...全文
184 点赞 收藏 7
写回复
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就可以解决
回复
发动态
发帖子
Delphi
创建于2007-08-02

4802

社区成员

Delphi 开发及应用
申请成为版主
社区公告
暂无公告