浮点数127.61为什么会被delphi6认成127.610000610352

ltolll 2003-06-10 08:45:37
数据库是Access,有个字段为单精度浮点数。在Access里可以正常显示127.61,但在delphi所带的数据库工具SQL explorer中却将其认成127.610000610352。在程序中用ADOConnection、DataSource、ADOTable和DBGrid操作数据库,在DBGrid中仍然这样显示(127.610000610352)。程序运行时在DBGrid中输入数据时本来输入的是133.93,但只要焦点一离开编辑行133.93变就成了133.929992675781(即使变也应变成133.930000000000吧),这是为什么应如何解决呢?
...全文
35 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
suton 2003-06-11
  • 打赏
  • 举报
回复
To: itolll(小力)

是牛人 大力的 弟弟嗎?
thh820630 2003-06-11
  • 打赏
  • 举报
回复
因为 DELPHI中时有位数要求的
蓝色光芒 2003-06-11
  • 打赏
  • 举报
回复
给Access的那个字段设置小数位数。
ltolll 2003-06-11
  • 打赏
  • 举报
回复
displayformat是什么东东
sea026 2003-06-11
  • 打赏
  • 举报
回复
Delphi currency
SQL Money
cdsy_go 2003-06-11
  • 打赏
  • 举报
回复
我正好遇到这样的问题,我想这是MS-SQL的问题,不过,你可以将BDE的参数BCD ENABLE设为TRUE就没有问题了
tttzms 2003-06-10
  • 打赏
  • 举报
回复
二进制的问题
myfine 2003-06-10
  • 打赏
  • 举报
回复
对的,这与计算机中的存储格式有关的
czzw 2003-06-10
  • 打赏
  • 举报
回复
这与浮点数在计算机内部的存储格式有关,有的数是无法在有限位内使用二进制方法来保存,因此计算机内的值与实际值之间会有一些差异,具体的可以看计算机硬件方面的书。
如果想正确显示格式,则需要在displayformat里面设置一下。例如#0.000,这样的话便可以格式化浮点数为固定的小数位。
X东海 2003-06-10
  • 打赏
  • 举报
回复
用Double把,但精度有问题。
xiaoqlj 2003-06-10
  • 打赏
  • 举报
回复
用formatfloat函数格式一下就行了。
如:formatfloat('0.00',12.101210);

2,496

社区成员

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

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