myInt = int( 5 * myRandom() )
myRandom()はランダムに生成されたfloatであり、0.2である必要があります。
したがって、このステートメントは1と評価されます。
私の質問:浮動小数点エラーのために1と評価されない可能性はありますか?
たとえば、浮動小数点エラーが原因で0.2であるはずの何かが、それよりも少ない可能性がある場合はどうでしょうか。たとえば、IEは次の3つの可能性を考慮します。
int(5 * 0.2 ) = 1 //case 1 normal
int(5 * 0.2000000000000001 ) = 1 //case 2 slightly larger, its OK
int(5 * 0.1999999999999999 ) = 0 //case 3 negative, is NOT OK, as int() floors it
case3も可能ですか?、0.1999999999999999は浮動小数点エラーの結果ですか?私はこれまで実際に負のイプシロンを見たことがありません。ケース2が少し大きい場合のみであり、int()にキャストされた場合のように、正しい結果に「フロア」されます。ただし、負のイプシロンでは、「床効果」により、結果の0.9999999999999996が0と評価されます。