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