私は自分のプログラムでニッケールの数を丸めるようにしています(これ以上ペニーはありません)。だから私は1.44を入力すると1.40にラウンドする必要があり、1.46の場合は1.50に丸めるはずです。助けてください!プログラムを変更する(丸めヘルプ)
import java.util.Scanner;
public class MakingChange
{
private static Scanner scanner;
public static void main(String[] args)
{
scanner = new Scanner(System.in);
double amount = 0;
while (true) {
try {
amount = Double.parseDouble(scanner.nextLine());
break; // will only get to here if input was a double
} catch (NumberFormatException ignore) {
System.out.println("INVALID\r\n$");
}
}
//calculating amount of change in cents
int remainingAmount = (int)(amount * 100.00);
//toonies
int numberofToonies = (int) (remainingAmount/200.00);
remainingAmount = remainingAmount % 200;
//loonies
int numberofLoonies = (int) (remainingAmount/100.00);
remainingAmount = remainingAmount % 100;
//quarters
int numberofQuarters = (int)(remainingAmount/25.00);
remainingAmount = remainingAmount % 25;
//dimes
int numberofDimes = (int)(remainingAmount/10.00);
remainingAmount = remainingAmount % 10;
//nickels
int numberofNickels = (int)(remainingAmount/5.00);
remainingAmount = remainingAmount % 5;
//rounded value
numberofNickels=(int) (((amount -(numberofToonies * 2) - (numberofLoonies *1) - (numberofQuarters *0.25) - (numberofDimes * 0.10) - (numberofNickels * 0.05))+0.04)/0.05);
System.out.println(".*toonies:" + numberofToonies + ";" + " loonies:" + numberofLoonies + ";" + " quarters:" + numberofQuarters + ";" + " dimes:" + numberofDimes + ";" + " nickels:" + numberofNickels +"$");
}
}
をユーザーに尋ねることを忘れてはいけないので、正確にどのようにこのコードが動作しませんか? –
*あなたは1.44を持っていればUSスタイルにすることができますが、1を取得し、ヒントのjarファイルを取得します.44:p *おそらくあなたは['Math.round'](https://docs.oracle.com)を探しています。 /javase/8/docs/api/java/lang/Math.html#round-double-)。また、金銭的なものにはdoubleを使うべきではないことに注意してください(例えば 'BigDecimal'を使用してください) –
2つのニッケルスを与える代わりに、私には1つしか与えません。また、2つのニッケルを取得した場合、2つのニッケルではなく、1つのダイムを表示するようにします。 –