4D-jp 4D Japan Technical Support Team

足し算の答えが間違っている⁉︎

2020-01-24

整数の11に実数の1.5を加算した値は,何でしょうか。

$Int:=11
$Real:=1.5
$Int:=$Int+$Real

上記の演算は,32ビット版では1312.5を切り上げた値),64ビット版では1212.5を切り下げた値)となります。これは仕様です。

64ビット版の4Dでは,インタープリターモードとコンパイルモードの動きを揃えるため,インタープリターモードであっても,Intel CPUの「丸め」処理(最近接偶数丸め)で「丸め」処理が実行されるようになっています。一方,32ビット版は,従来どおり,「四捨五入」処理が実行されるため,演算結果に違いがあります。


関連記事

リンク