gpt4 book ai didi

delphi - 为什么我可以在 Delphi 中将 Single 除以 Variant,它的用途是什么?

转载 作者:行者123 更新时间:2023-12-03 15:23:09 25 4
gpt4 key购买 nike

我很惊讶地发现,浮点值可以除以 Delphi 中的 Variant。可以做什么的简单示例:

var
v: Variant;
begin
v := 2.3;
Tag := 5.1 div v; // 2
Tag := 5.1 mod v; // 1
Tag := 5.1 div 2; // [dcc32 Error] E2015 Operator not applicable to this operand type
Tag := 5.1 mod 2; // [dcc32 Error] E2015 Operator not applicable to this operand type
end;

看起来 Delphi 在执行 div/mod 操作之前对左侧部分和右侧部分进行了舍入。

我希望上面的代码在编译时在所有 4 行中产生错误,因为我的理解是 div/mod 无论如何都不适用于浮点值。显然情况并非如此。

为什么我可以在 Delphi 中将 Single 除以 Variant,它的用途是什么?

最佳答案

来自Variants in Expressions :

If an expression combines variants with statically-typed values, the statically-typed values are automatically converted to variants.

这意味着浮点类型文字首先转换为变体。

然后,在执行 div/mod 操作之前,这两个变体都会隐式转换为整数值以匹配运算符。 Variant Type Conversions

..and what is it needed for?

只是为了尽可能通用并完全支持 OLE。

关于delphi - 为什么我可以在 Delphi 中将 Single 除以 Variant,它的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42944527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com