DELPHI的困惑(40分)

  • 主题发起人 主题发起人 宫雨
  • 开始时间 开始时间

宫雨

Unregistered / Unconfirmed
GUEST, unregistred user!
我有程序如下
ORACLE 的数据库有字段为
NUMBER(12,3)
有值0.459
从数据库检索出后赋值给一个SINGLE 类型的变量
从调试器看值为0.45899999999
次问题如何解决
 
用format来控制显示吧.:)
 
这是计算机二进制存储的问题,其他编程语言都有这毛病。曾看到过有人专为此写了篇文章
这样处理行不行(我记不清了):single_value:=round(1000*read_value)/1000
 
在字段属性中加入editformat和display format
就可以了,按F1有帮助的。
 
我用SQL Server遇到过类似的问题,呵呵,好象只能在程序端控制(Format控制)。
 
自己编写一个类似四舍五入的过程不就行了?
应该不难.
 
这不什么编程语言的事。
是CUP对浮点型不精确计算造成。
找个方法避免它是了。
这是经常见到的。
前面个位介绍的方法都行。
 
浮点数本来就是这样的
 
如果你不想一劳永逸地自己做一个过程,那就只有每次都使用format了.
 
按浮点数的表示方法,
肯定会有这种现象出现的
自己写一个proxcedure把
 
这问题要是在会计中就通不过了。多行值加总后就差多了。
所以别指望开发工具,自己搞定吧,
我一般要设一些全局变量,指定各种数额的小数位,所有的
的数值计算都要先格式化再加减。
 
接受答案了.
 
后退
顶部