次のコードを実行すると、ある種の不明瞭な丸めエラーが発生するようです。
int roundedTotal = (int)(PriorityJob * 100.0);
最初はPriorityJob = 1.4
androundedTotal
は未定義です。PriorityJob * 100.0
その時点で評価すると が得られ140
ます。その後roundedTotal = 139
。
どうやら、140.0 は 139.99999 として解釈されています。これは浮動小数点エンジンの欠陥ですか? 私はそのようなものを見たことがありません。