strtofloat的反回值Extended类型,
sum := strtofloat(s);的时候转换了一下,造成了这两个数有很小的区别,
而19.5可能是一个比较特殊的数,没有造成这个误差,所以没有显示,你把sum: double;改成sum:Extended,在测试,就不会有不同了。
sum := strtofloat(s);的时候转换了一下,造成了这两个数有很小的区别,
而19.5可能是一个比较特殊的数,没有造成这个误差,所以没有显示,你把sum: double;改成sum:Extended,在测试,就不会有不同了。
解决方案 »
- 用ocx控件裝到delphi7后开发的程序放到客户端电脑就无法用了。
- D2009的TObject已经开始支持初步的反射能力了,可能需要机上编译器指令。请高手代码演示。 演示代码有效,另开贴200分。
- 一个TstringList的问题
- 如何做一个系统忙时显示的窗口,以便此时用户不能进行其它操作?
- 在文件中删除部分内容,请问怎么做?
- 如何解决asynchronous socket error 10061
- delphi与oracle连接
- 小弟不才,問個笨笨的問題
- 急问:安装delphi7.0时出现的问题
- 各位DELPHI的哥们,我因为工作关系要从VB转到DELPHI了,下面是我的几个问题
- 午餐前的问题:关于窗口 USES的问题.急,急,急.
- 有没有功能类似TStretchHandle,支持Dlephi6的第三方控件?
var
sum: Extended;
s: string;
begin
s := '19.4'; //'19.7','19.8','19.3','19.5'
sum := strtofloat(s);
if sum<> strtofloat(s) then
showmessage('error');//假如s='19.5'则不执行
end;
不要用<> 或 = 进行比较。这是写程序的规则之一。
var
sum,esp:extended
s:string;
begin
esp:=1.0e-20; s := '19.4'; //'19.7','19.8','19.3','19.5'
sum := strtofloat(s);
if abs(sum-strtofloat(s))>esp then
showmessage('error');
end;