怎么样四舍五入一个浮点型的值(50分)

  • 主题发起人 主题发起人 strongboy
  • 开始时间 开始时间
S

strongboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我读入一个小数,保存为real类型,但读出时精度却发生了变化,如读入4.5,再读出时就成了4.4999999,我该如何处理使之读出仍为4.5。
 
formatfloat('0.00',4.4999999);
 
你用的是BDE吧?用ADO就不会出现这种问题了!
 
Round
但是你需要先*10,然后再……
 
自己写函数嘛!!
 
是BDE里面有个Enable BCD什么的,据说设置一下行,没有遇到过这个问题,所以就没用过。[:)]
 
ADO也会出现此问题,小弟遇到过,最后用format搞定
 
diplayformat 0.0
formatfloat('0.0',value)
 
round(a*10)/10
 
最保险地方法是 round(a*10)/10,浮点数精度问题是DELPHI5地一个系统缺陷,小心了
 
多人接受答案了。
 
后退
顶部