【发布时间】:2016-04-19 01:17:23
【问题描述】:
我可以将我的 Delphi 代码包装在如下未记录的 {$finiteFloat OFF|ON} 编译器指令中,以在函数期间禁用浮点异常吗?
{$finiteFloat OFF}
a := 5.0;
b := 0.0;
c := a/b; // do not raise exception here!
{$finiteFloat ON}
我知道我可以在使用 {$J} 的常量的情况下,但我不认为 {$finiteFloat} 可以这样做,因为它的范围是全局的。任何人都可以确认吗?
【问题讨论】:
-
这个指令有什么作用?不是只有.net吗?如果您想屏蔽浮点异常,请使用 RTL 函数来执行此操作。
-
@DavidHeffernan,见docwiki.embarcadero.com/RADStudio/XE/en/…。但自 XE2 以来它没有记录。
-
{$finiteFloat} 关闭浮点错误 {$J+} 将允许您在运行时更改常量我相信两者都可能是危险的,宁愿避免它们。
-
为什么不使用 {
$J+}?它是如何关联的? -
这和他的问题完全没有关系,是一个意见陈述。我编辑了这个问题,因为应该以网站上的其他人可以找到的方式提出问题。我更改了问题标题,因为它没有意义。此外,问题的文本应说明您要做什么。真正的人。
标签: delphi delphi-xe6