ユーザーが入力した金額 (米国の通貨) を構成するために使用される米国のコインの最小額をユーザーに返すプログラムを作成しようとしています。
私の問題: プログラムが 0.1 に達したとき、プログラムは 10 セント硬貨を差し引くのではなく、1 セント硬貨と 5 セントを差し引きます。これは、1.85 より大きい数値でのみ発生します。1.85 未満の場合、1 セント硬貨が正常に減算されます。
これが私のコードです:
while (Money >= 0.25){
Money = Money - 0.25;
Coins = Coins + 1;
printf ("Current money: %f \n", Money);
}
while (Money >= 0.1) {
Money = Money - 0.1;
Coins = Coins + 1;
printf ("Current money: %f \n", Money);
}
while (Money >= 0.05) {
Money = Money - 0.05;
Coins = Coins + 1;
printf ("Current money: %f \n", Money);
}
while (Money >= 0.01) {
Money = Money - 0.01;
Coins = Coins + 1;
printf ("Current money: %f \n", Money);
}
数値 2.1 を使用した場合の出力は次のとおりです。
2.1
Current money: 1.850000
Current money: 1.600000
Current money: 1.350000
Current money: 1.100000
Current money: 0.850000
Current money: 0.600000
Current money: 0.350000
Current money: 0.100000
Current money: 0.050000
Current money: 0.040000
Current money: 0.030000
Current money: 0.020000
Current money: 0.010000
Used 13
そして、これは数値1.85を使用したときの私の出力です:
1.85
Current money: 1.600000
Current money: 1.350000
Current money: 1.100000
Current money: 0.850000
Current money: 0.600000
Current money: 0.350000
Current money: 0.100000
Current money: 0.000000
Used 8
なぜこうなった?ダイムが 1.85 より大きい数で使用されないのはなぜですか?