急死人的Access小数一大串问题,请高手指教(50分)

  • 主题发起人 主题发起人 再见卡门
  • 开始时间 开始时间

再见卡门

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是Access数据库,数据库中的小数都是两位,可是在我的DBGrid中却出现一大串小数,咋去掉啊???请指点小弟!!!
 
老兄们不要见死不捄啊
 
在你DBGrid 所连接的dataSe 类那个控件,双击它 ,右击选择add all fields
选择你那个字段,在DisplayFormat属性填入#.00
 
又学到了新东西
 
还有,你把数据类型设成双精度型就不会出现这个问题了
 
它为什么会自己加上这么多小数呢?
 
没错,在字段的displayformat属性中进行设置就可以了,另外editformat也可以进行设置.
 
formatfloat('0.00', float);
 
我也为这个伤脑筋了整整一个晚上。
Displayformat属性设定为#.##,只能起到显示为两位小数,但实际数据库中还可以是多位小数。
用Editformat输入太不灵活,不爽。
用Ongettext事件处理,结果发现Grid中货币型数据,本来只能是输入数字的,结果ABCD也能输。
后来用了一个笨办法来解决:
1.设定Displayformat为#.##
2.在Onsettext事件中
if Text='' then
Sender.Value:=0
else
Sender.Value:=Round(StrToFloat(Text)*100)/100;
顺便说一句,我也不精通Delphi,不知道有没有什么函数可以直接得出保留小数点后两位的值。
 
这个问题我也碰到过,不过后来因为ACCESS已不能用在多用户下,升级为SQLSERVER,这个问题
也就消失了!有可能是一个BUG,不知道大家注意没有,在VB6中,"9D-99"或"9E-99"这样的字串
VB认为是数字型的!用凼数IsNumeric()测试一下就出来了!
 
Displayformat是谁的属性?
 
3楼已经说过了,我再具体一点吧。
如果是用AdoTable,双击控件,会弹出一个窗口,在窗口里面空白的地方,单击鼠标右键,
选择add all fields,里面的字段就会有Dispalay属性和Onsettext事件
 
可以在Access的表里面直接设置小数位
 
非常感谢各位高手,小弟在此谢过了
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
后退
顶部