128.1-128.08
という数式を4Dで評価すると0.01999999999998
という値が返されます。127.1-127.08
であれば0.02
が返されるのとは対照的です。
プログラミングで小数を扱う場合,実数は近似値を表現したものであることを憶えておきましょう。小学校で習った算数とは違うことをしている,ということです。計算の結果がぴったり割り切れるかどうかは,実数の内部的なデジタル値に左右されます。上述した例では,どちらも「およそ0.02
」という近似値が返されているのであり,これを「およそ等しい」と判定するために SET REAL COMPARISON LEVELのような仕組みが存在します。これは計算間違いではなく仕様です。