读取数据库时,精度发生变化,如何解决?

xsfh1223 2005-11-02 09:12:43
下面的语句中:

KCurRec.Volume:=DataModule1.ADOTable1.FieldValues['Volume'];

右边的值是 1.2,正确;左边却为12.0000327之类。但右边为1.5时,却无此类现象。
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsfh1223 2005-11-02
  • 打赏
  • 举报
回复
试验了Hank及nann32258的意见,问题仍然照常。
chinasdp:事先不知道数据的位数啊。

请继续指点。
nann32258 2005-11-02
  • 打赏
  • 举报
回复
在程序端将获取数据的变量定义为double类型,这样获取的数据跟数据库一致。
Hank 2005-11-02
  • 打赏
  • 举报
回复
1、如果你使用的是ACCESS数据库,那么把数据类型修改为双精度型,然后把默认值取消
2、如果你使用的是SQLSERVER数据库,那么把数据类型修改为DECIMAL,然后自行设定小数点位数
chinasdp 2005-11-02
  • 打赏
  • 举报
回复
对于二进制数据来说1.2就象10/3一样不是个精确的数据,它是以一个近似值表示的。
FormatFloat('.0', 234.348734)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧