当前位置 : 主页 > 编程语言 > delphi >

Delphi检查double是否为整数

来源:互联网 收集:自由互联 发布时间:2021-06-23
我需要测试double是否为整数.基本上这是规则的一个例子: 5.0真正 5.2假 为了做到这一点,我做一个if(结果mod 1)= 0然后看看它是否返回true或false.考虑结果是双重的.顺便说一句,编译器给我
我需要测试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等数字对此进行了测试,代码是正确的.我看到你的双数字中有一些数字,所以不应该有问题.我不确定该功能有多准确,但在这种情况下你不必担心.

网友评论