私は、浮動小数点値をDelphiのVariantで分割できることに驚いていました。なぜDelphiでSingle by 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でバリアントを分割することができますか?何が必要ですか? Variants in Expressionsから
これは単なるバリアント型強制です。バリアントは、想像できるほど多くの型変換を可能にするように設計されています。なぜあなたはMS COMのドキュメントを見てくださいする必要がありますかについてもっと知りたい場合。 –