小数(3.115) 显示时四舍五入(3.12) 保存时却截断(3.11) ( 积分: 100 )

  • 主题发起人 主题发起人 太空鼠
  • 开始时间 开始时间

太空鼠

Unregistered / Unconfirmed
GUEST, unregistred user!
ADO+Server2000
字段设为 [numeric](18, 2)
控制面板设小数位 3 DBEdit中输入 3.115 显示 3.115 一保存就变成3.11了
控制面板设小数位 2 DBEdit中输入 3.115 显示 3.12 但一保存就变成3.11了

!!非精度问题,感觉纯属显示和保存的不一致问题 一个四舍五入 一个截断
如何自动保存为3.12,就算要写代码处理 能不能统一搞 别让我每个字段都写一个
 
数据集有个属性 BDCField 什么的,设置为False
另外[numeric](18, 2)中的2表示两位小数位
 
DataSet.EnableBCD
[numeric](18, 2)中的2 我知道
试过,不行啊,
!!我要的就是两位小数,问题是我想让它自动保存为3.12 但它保存成3.11了
保存前显示的(3.12)和保存后显示的(3.11)不一样好不爽
 
我认为 之所以 存后看到的是3.11是因为显示的问题,真正的3.115 ACCESS有保存的,所以不用理它存起来象什么,下次拿出来还是3.12。
 
保存前先用round(3.115,2)
 
jenhon 都[numeric](18, 2)了,能存三位小数??? 3.11是从数据库里看的

看来没什么偷懒的办法,堆代码吧
不过这种情况还是提醒大家以后要注意
 
来自:太空鼠, 时间:2007-6-13 17:08:23, ID:3797945
jenhon 都[numeric](18, 2)了,能存三位小数??? 3.11是从数据库里看的

看来没什么偷懒的办法,堆代码吧
不过这种情况还是提醒大家以后要注意
....

计算机使用的是十进制?

[numeric](18, 2) 只是使一个浮点数只 显示 小数点后面2位,不是20位的整形数去除100,
那么难道你认为二进制的浮点数该存多少位就能保持 十进制 小数点后2位数的精度?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部