|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2003/10/31 14:33:52 |
标题: |
|
加入我的收藏 |
楼主: |
我在比较一个编辑框内输入的浮点数的值和一个浮点型变量的大小时遇见这样的问题: 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
----------------------------------------------
-
|
|