Ich war überrascht zu sehen, dass Gleitkommawerte durch eine Variante in Delphi geteilt werden konnten. Ein einfaches Beispiel dafür, was getan werden kann:Warum kann ich Single nach Variant in Delphi aufteilen, und wozu dient es?
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;
Es sieht aus wie Delphi den linken Teil und rechten Teil Runden vor div
/mod
Betrieb zu tun.
Ich würde obigen Code erwarten, um Fehler bei der Kompilierung in allen 4 Zeilen zu erzeugen, da mein Verständnis ist, dass div/mod nicht auf Gleitkommawerte egal was anwendbar sind. Dies ist eindeutig nicht der Fall.
Warum kann ich Single nach Variant in Delphi aufteilen, und wozu wird es benötigt?
Das ist nur Variante Zwang. Varianten sind so konzipiert, dass so viele Typkonvertierungen wie möglich möglich sind. Wenn Sie mehr darüber erfahren möchten, warum sollten Sie sich die MS COM-Dokumentation ansehen? –