我需要测试double是否为整数.基本上这是规则的一个例子:
为了做到这一点,我做了一个if (result mod 1) = 0 then
,看看它是否返回true或false.考虑到这result
是双重的.顺便说一句,编译器给我这个错误:
[dcc32错误] Unit1.pas(121):E2015运算符不适用于此操作数类型
我怎么解决这个问题?请注意,我的数字是这种格式,##.#####
所以我对浮点精度没有太多问题.
一般我会使用if (result % 1 == 0) {}
但在Delphi中这不起作用.
您可以使用frac
Delphi的System单元中声明的函数.试试这段代码:
if ( frac(result) = 0 ) then
ShowMessage('is zero')
else
ShowMessage('is NOT zero');
end;
Run Code Online (Sandbox Code Playgroud)
有关该功能的详细信息,请查看文档.你在做什么是错的,因为在Delphi中,关键字mod
只适用于整数.
注意.我用这样的数字测试了这个,45.1234
代码是正确的.我看到你的双数字中有一些数字,所以不应该有问题.我不确定该功能有多准确,但在这种情况下你不必担心.
归档时间: |
|
查看次数: |
1727 次 |
最近记录: |