DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lixuan123
今日帖子: 0
在线用户: 7
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2003/10/31 14:33:52
标题:
比较大小的问题? 浏览:1366
加入我的收藏
楼主: 我在比较一个编辑框内输入的浮点数的值和一个浮点型变量的大小时遇见这样的问题:
if strtofloat(edit_quantity.Text) > dou_quantity then
......
运行时,dou_quantity 的值为123.67,
edit_quantity.text 的内容也是123.67,可这时上面语句里写的判断为真,这是怎么回事?怎么会 123.67 > 123.67 ?
后来我把这条语句这样写就不出这样的事了。
if strtofloat(edit_quantity.Text) > strtofloat(floattostr(dou_quantity)) then
......
请高手指教,这是为何?
我这个程序以前写过的好多地方都是用的前一种写法,要是不行还得重新改一遍?
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 bryan (bao) ★☆☆☆☆ -
盒子活跃会员
2003/10/31 14:58:02
1楼: 没办法,float类型的数据不是精确表示的,所以直接比较有时会出问题,
只有自己处理了,我用的是最小误差的方法
  A>B  :  (A-B) > 0.0000001   
  A<B  :  (A-B) < -0.0000001   
  A=B  :  ABS(A-B) < 0.0000001
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行60.54688毫秒 RSS