Delphi的第一个版本是什么,它允许像double(10)这样的类型转换



DelphiTokyo 64位将使用单精度计算一些数学函数,如果使用整数常量调用,例如

{$apptype console}
uses
system.math;
var
d: double;
begin
d := 10;
writeln(log2(10):20:16, log2(10.0):20:16,log2(d):20:16);
end.

将打印CCD_ 1。

我在Delphi Tokyo中被告知64位将非正规数字刷新为零?,我应该使用typecastdouble(10)来处理这个特性。问题是,从我可用的Delphi版本来看,只有Tokyo允许这种类型转换(IMO,尽管文档似乎禁止它,说只允许将变体转换为真实类型(。

我知道XE4(VER250(为double(10)提供了错误Error: E2089 Invalid typecast,但我没有关于VER260的信息。。VER310.

那么,哪个是第一个允许typecastdouble(10)的Delphi版本?

XE7失败。XE8出现故障。。。。在Delphi 10.1柏林失败。

因此,它似乎是在10.2东京推出的。


在(XE4(的早期版本中,您可以使用SysUtils:中的整数辅助方法

10.ToDouble 

在此之前的版本中,使用变体转换:

VarAsType(10,varDouble)

适用于所有版本的函数:

function DoubleVal( x : Double) : Double; inline;
begin
Result := x;
end; 

最新更新