浮点精度控制(Delphi for x64)

来自RAD Studio
跳转到:航行,搜索

转到Delphi编译器指令(列表)索引


类型

交换机

语法

{$EXCESSPRECISION开},{$EXEXPRECISON关}

违约

{$EXCESSPRECISION开}

范围

本地

评论

这个$EXCESS精度指令控制编译器处理单精度中间结果的方式(32位)浮点表达式。$EXCESS精度特定于Delphi编译器的x64目标CPU。

默认情况下,所有只涉及单精度浮点值的x64算术运算和表达式都通过将中间结果存储为双精度来保持高精度(64位)浮点值。因此,这些操作比双精度浮点操作慢(编译后的代码在每个操作中将Single值转换为double)。

如果执行速度是主要问题,请用{$EXCESSPRECISION关闭}禁止使用中间双精度值的指令;否则为默认指令({$EXCESSPRECISION开})建议提高结果值的精度。

对于x86目标CPU$EXCESS精度指令无效。为此平台生成的代码使用FPU(浮点单元),它将任何类型操作的中间结果存储为扩展精度(80位)浮点值。

另请参见