如何才能使浮点类型的字段在写入/读出数据库时能保持原来的数值?(30分)

  • 主题发起人 主题发起人 carrie4002
  • 开始时间 开始时间
C

carrie4002

Unregistered / Unconfirmed
GUEST, unregistred user!
如果数据库的某些字段需要从某窗体上的EDIT字段输入后写到数据库,在以后对数据库的使用中,还需要把数据库的这些字段从表中读出并显示在窗体的EDIT控件上。这些字段是float型。(总出现多几位小数的情况)
如何才能使这些浮点类型的字段在写入/读出数据库时能保持原来的数值?
 
将数据库中的浮点数字段改用decimal类型,可以任意控制精度。

另外,ADOQuery(假设你用的是ADO连接:P)的EnableBCD属性也是会有影响的——我一般
将其设为False。
 
TO creation-zy:
谢谢你。
有例子吗?
因为从EDIT到数据库,以及从数据库到EDIT数据字段的值都会发生变化。
 
用 currency 不会出现这样得情况。
 
用货币类型一般精度比较好
 
TO creation-zy:
不懂你说的该如何做?

TO duhai_lee,goodpb2006:
谢谢二位。
如果数据表设计时把表中字段A、B两个字段应该是Float型。currency类型小数点只能保持4位,这不符合需要。
 
如果精度要求高的话建议用文本存储
 
这个不用问了,肯定是用字符串来储存的精度是完全没有损失的。
 
你可以格式strtofloatf
或你在保存进数据库之前把数据+0.0000..1,达到你需要的精度即可.
 
数据库用 BCD 格式
 
TO QSmile:
数据库的设计里哪里有BCD格式呢?请明示。
 
如果你用 MSSQL 里面就有一个 Numeic 类型,它就是 BCD 格式的。就是用字符串来表示数字
 
将单精度改为双精度就可以实现了。谢谢各位。
 

Similar threads

后退
顶部