小数点后要保留到6位,怎么解决? 数据库是SQLServer,数值字段类型是Decimal(12,6),用ADO,但TBCDField只能保留到小数点4位,而TFMTBCDField说是可以,但对应的SQL Server数据库字段类型应该是什么,用Decimal(12,6)、Float都不行。该如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应当不存在这样的问题啊。总长度取大些试试。 numric(18,6) 用控件TPBNumEdit吧.设置一个属性就OK了 三层结构,字段类型与TADODataSet、TClientDataSet等都要对应的,如数据库字段是Decimal(12,6),则在中间层和客户端是TBCDField,这应该不是客户端的编辑控件所能解决的问题吧? 关于delphi中只能显示4位小数的问题 最近也遇到了这个问题,查询资料,发现一些解决办法,但试验了一下,发觉这些资料说的都不太清楚,所以在这里详细叙述一下。 一种方法,是将decimal(x,x)或numeric(x,x)类型改变为float数据类型。这样,无论输入多少位,都可以正常显示,但不足的是精度不高,浮点类型数据在计算时,会产生一些微小的误差。所以这个办法,只能根据具体情况来决定是否采用。 另一种方法,是设置ADO数据集的EnableBCD := False,但具体在实施时,却发现一个现象,未必有效。为什么呢?不知道,但找一下规律,就可以让它绝对有效。 这个规律是这样的,在我们添加一个ADO数据集控件到程序中时,默认状况下,EnableBCD = true,这时候如果我们在数据集中添加字段,那这些字段就只能显示4位小数,即使你再设置数据集的EnableBCD := False,也没有用。 这时,一定要把想全部显示小数的字段删除,再设置EnableBCD := False,然后(笔者大喝一声,这一步一定不能少),将数据集打开、关闭一次,对了,设置Active = True,再=false,然后再添加需要的字段,这样你需要的字段就可以正常显示了。 看来,程序设计的前后顺序也很重要啊。如果不知道这点,误踏陷井,究竟是该怪我辈无知、没有理解borland的深刻用意呢,还是该怪delphi的设计有疏忽?字段类型有区别可显示全部小数的字段: ADOXQuery1Num: TFloatField;只能显示4位小数的字段: ADOXQuery1Num6: TBCDField; 参照上述方法,自己解决了:即数据库字段仍是Decimal(12,6) SQLite的DELPHI接口,以及DELPHI开发的SQLite查询分析器。 delphi 加载好驱动? .car 文件格式,用什么软件能打开? 这个函数好像有误,有人能帮我指教一下吗,谢谢 如何取出TDateTime数据类型中的年份和日期? 两个关于ComboBox的问题? 关于让出CPU的函数(help!!!!!) 简单问题:如何取得ACCESS数据库中某张表的字段的数目? 高分征稿,陆续加分中… 为何我把prodorx的库转到sqlserver7后,我的"filter"就用不了了?急、急、急! 主表中输入不了数据? 求助!! 三个骰子,出现在的概率问题。。
总长度取大些试试。
numric(18,6)
最近也遇到了这个问题,查询资料,发现一些解决办法,但试验了一下,发觉这些资料说的都不太清楚,所以在这里详细叙述一下。 一种方法,是将decimal(x,x)或numeric(x,x)类型改变为float数据类型。这样,无论输入多少位,都可以正常显示,但不足的是精度不高,浮点类型数据在计算时,会产生一些微小的误差。所以这个办法,只能根据具体情况来决定是否采用。 另一种方法,是设置ADO数据集的EnableBCD := False,但具体在实施时,却发现一个现象,未必有效。为什么呢?不知道,但找一下规律,就可以让它绝对有效。
这个规律是这样的,在我们添加一个ADO数据集控件到程序中时,默认状况下,EnableBCD = true,这时候如果我们在数据集中添加字段,那这些字段就只能显示4位小数,即使你再设置数据集的EnableBCD := False,也没有用。
这时,一定要把想全部显示小数的字段删除,再设置EnableBCD := False,然后(笔者大喝一声,这一步一定不能少),将数据集打开、关闭一次,对了,设置Active = True,再=false,然后再添加需要的字段,这样你需要的字段就可以正常显示了。 看来,程序设计的前后顺序也很重要啊。如果不知道这点,误踏陷井,究竟是该怪我辈无知、没有理解borland的深刻用意呢,还是该怪delphi的设计有疏忽?字段类型有区别
可显示全部小数的字段: ADOXQuery1Num: TFloatField;
只能显示4位小数的字段: ADOXQuery1Num6: TBCDField;