关于GRID中显示SQL查询结果精度太高的问题解决方法(50分)

  • 主题发起人 主题发起人 hanhongfei
  • 开始时间 开始时间
H

hanhongfei

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL查询语句中我应用了select a1.shuliang-a2.shuliang,(a1.shuliang-a2.shuliang)*a1.danjia from a1,a2 where a1.bianma=a2.bianma
其中shuliang,danjia均为float型其中shuliang为小数点后保留4位 danjia为整型
我把查询结果用GRID显示出来,发现显示的小数位数太长,我想把shuliang差值 显示为小数点后保留5位 (shuliang*danjia)显示为小数点后保留2位,请问有什么方法?
 
query1.fields.displayformat:='##,###.00';
 
你这个问题也折腾我很久,请参考我以前的帖子(花了200分):
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1699158
 
楼上说的没错但可能有点小BUG,双击数据集编辑字段的属性
displayformat:='###,###,##0.00'
 
如query中的字段是动态的,既是根据sql语句生成。应如何处理?
 
在对应的Query中找到需要设置的字段,然后在其OnGetText事件中加上如下代码:
text:=formatfloat('###,###,##0.00', Sender.AsFloat)
具体的小数位数保留问题查看 formatfloat帮助吧!
 
请注意在SQL语句中解决
select str(a1.shuliang-a2.shuliang,10,5),str((a1.shuliang-a2.shuliang)*a1.danjia,10,2) from a1,a2 where a1.bianma=a2.bianma
这样就可以了.
但是有一点:所有的都是这样的精度,察看起来不舒服.
 
多人接受答案了。
 
后退
顶部