操作に使用する形式/精度を決定する際に、式の右側と左側の両方を確認することは、Pascalの設計哲学の一部であると常に考えていました。そのため、Cのような表現とは異なり、
Float_Var = 1/3
Float_Varの値は0.0になり、Pascalは常にこれを正しく取得します。:)
そのため、2つのLongInt(32ビット)を乗算してInt64の結果を取得し、異常な結果が得られていることに気付いたときは、ちょっと驚きました。私はすべてのCを好きにして使用しなければなりませんでした、
Int64_Var := Int64(LongIntVar1) * LongIntVar2
正しく動作させるために。(ところで、これはDelphiの下にあり、さまざまなバージョンがテストされましたが、すべてwin32でした)。
これがDelphi/Pascalの例外的なケースであるかどうか疑問に思っていましたか?または、式の両側の型を使用して操作の実行方法を決定する通常のPascalの方法が当てはまらない例は他にもあります。