显示精度:dxDBGrid截了我的小数!0.12345678变成0.1234!!(100分)

  • 主题发起人 主题发起人 xiaoer
  • 开始时间 开始时间
X

xiaoer

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道大家有没有碰到过这个问题?
我数据库的字段定义为Numeric(10,8),就是2位整数8位小数。
但我在dxDBGrid中(就是DevExpress Quantum Grid)只能输入4位小数,
多输入的部分就被自动截掉了。
我搞不定这个问题,大家谁能帮我?
谢谢!!
 
你用另外的字段定义,用货币型就好了。
 
设置数据字段的DisplayFormat为'###,###.00000000'应该可以.
 
都不行,之前我都试过了。没办法才上来问的!:)
设成货币型,它在每个数前加上“¥”,这还没关系,关键是只能输入两位小数了。连四位
都输入不了啦!
设置字段的DisplayFormat为##.00000000,可以显示为12.12340000,但后四位小数输入不
了东西!

继续请求大家的帮忙!
 
该列调宽一点不行吗?
到底是看不见,还是截掉了,查查数据库。
 
呵呵,多谢提醒!我当然会查数据库了。确是只能输入4位小数,不知道为何。
比如我在数据库中改为12.12345678,在程序中它就给我显示12.1235(这里它
自作聪明四舍五入了)。
你们没有遇到过么?
 
怎么没有人帮我啊!!!
 
应该是驱动有问题。你试一下,在DBGRIG中输入的数据就不能正确地保存到SQLSERVER中
 
在 TTable 的 FieldDefs 的相应字段中指定数据类型,或修改其它的一些属性。
试试吧!!
 
看看tfield的displaywidth or editformat or displayformat or ...
我也碰到过,反正是这样解决的。
 
是TField的问题!
我试了DBGrid、DBGridEh、wwDBGrid都是这样的。
12.12345678只显示为12.1235
我跟踪了一下,好像是TField有一个GetText方法有问题。
我会继续研究等一下告诉大家解决的办法!
 
不好意思,我还没有解决。:(
我发现,把SQL Server中的字段类型改为Float就可以显示12.12345678了。
原来数据类型为Numeric(10,8)。
Delphi的帮助中说一般情况下会把数字类型当成TBCDField看待。而TBCDField只有
4位小数。
我会继续努力,来解决Numeric(10,8)的显示问题。
谁遇到过这样的问题也请指定一下,谢谢!!
 
我这样解决的:
把SQL Server中需要显示长小数位的字段类型都从Numeric(10,8)改为Float.
大家 有兴趣的话继续讨论!
 
多人接受答案了。
 
另一解决办法:
ADOQuery1.EnableBCD := False
 
學問人啊,就是不一樣,如果做什麼事都能這樣追究到底,找到原因,你就可以當高手了.
 
后退
顶部