整数の11
に実数の1.5
を加算した値は,何でしょうか。
$Int:=11
$Real:=1.5
$Int:=$Int+$Real
上記の演算は,32ビット版では13
(12.5
を切り上げた値),64ビット版では12
(12.5
を切り下げた値)となります。これは仕様です。
64ビット版の4Dでは,インタープリターモードとコンパイルモードの動きを揃えるため,インタープリターモードであっても,Intel CPUの「丸め」処理(最近接偶数丸め)で「丸め」処理が実行されるようになっています。一方,32ビット版は,従来どおり,「四捨五入」処理が実行されるため,演算結果に違いがあります。