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

Delphi检查double是否为整数

发布时间:2020-12-15 09:07:32 所属栏目:大数据 来源:网络整理
导读:我需要测试double是否为整数.基本上这是规则的一个例子: 5.0真正 5.2假 为了做到这一点,我做一个if(结果mod 1)= 0然后看看它是否返回true或false.考虑结果是双重的.顺便说一句,编译器给我这个错误: [dcc32 Error] Unit1.pas(121): E2015 Operator not appl
我需要测试double是否为整数.基本上这是规则的一个例子:

> 5.0>真正
> 5.2>假

为了做到这一点,我做一个if(结果mod 1)= 0然后看看它是否返回true或false.考虑结果是双重的.顺便说一句,编译器给我这个错误:

[dcc32 Error] Unit1.pas(121): E2015 Operator not applicable to this
operand type

我怎么解决这个问题?请注意,我的数字格式为##.#####所以我对浮点精度没有太多问题.

一般来说,我会使用if(结果%1 == 0){}但在Delphi中这不起作用.

解决方法

您可以使用Delphi的System单元中声明的函数frac.试试这段代码:

if ( frac(result) = 0 ) then
 ShowMessage('is zero')
else
 ShowMessage('is NOT zero');
end;

有关该功能的详细信息,请查看documentation.你在做什么是错的,因为在Delphi中,关键字mod仅适用于整数.

注意.我用45.1234等数字对此进行了测试,代码是正确的.我看到你的双数字中有一些数字,所以不应该有问题.我不确定该功能有多准确,但在这种情况下你不必担心.

(编辑:李大同)

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

    推荐文章
      热点阅读