如何在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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |