delphi float string转换问题

vars:string;a:real;begins:='9.4';a:=9.4;ifstrtofloat(s)=athen//为什么条件不为true???begin...... var
s:string;
a:real;
begin
s:='9.4';
a:=9.4;
if strtofloat(s) = a then //为什么条件不为true???
begin
......
end;
......
展开
 我来答
狂战补师
推荐于2018-04-06
知道答主
回答量:20
采纳率:0%
帮助的人:6.6万
展开全部
delphi 中的StrToFloat返回的类型不是Float 而是Extended 在小数进行对比的时候 有时候出错。。
因为single和double是8字节 而Extended是10字节。
同一个小数存在double和extended中的值一般是不一样的,除非这个小数可以被有限的2进制数表示,而不是被无限的2进制数表示。
更安全的做法是使用function TryStrToFloat(const S: string; out Value: Double): Boolean; overload;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式