加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在delphi中比较double?

发布时间:2020-12-15 10:19:17 所属栏目:大数据 来源:网络整理
导读:我们正面临数据类型双重比较的问题: if(p pmax) thenbegin Showmessage('');end 如果这两个值都是100(p = 100和pmax = 100),那么它也将进入if子句。 解决方法 有几个比较双打的概率。一个问题是,你所看到的并不完全是由于四舍五入而得到的。您可以拥有99.
我们正面临数据类型双重比较的问题:
if(p > pmax) then
begin
  Showmessage('');
end

如果这两个值都是100(p = 100和pmax = 100),那么它也将进入if子句。

解决方法

有几个比较双打的概率。一个问题是,你所看到的并不完全是由于四舍五入而得到的。您可以拥有99.999999996423和100.00000000001632,它们都被舍入为100,但它们不相等。

解决方案是使用边距。所以如果两个双打的差异在边际范围之内,你就接受他们的平等。

您可以使用margin作为可选参数创建IsEqual函数:

function IsEqual(const ANumber1,ANumber2: Double; const AMargin: Double = cMargin): Boolean;
begin
  Result := Abs(ANumber1-ANumber2) <= AMargin;
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读