Java-программа: попросите пользователей ввести количество печатных копий, затем рассчитать и отобразить общую стоимость печати, используя следующую таблицу тарифов
У меня проблемы с получением правильного результата из вывода. Некоторые входные данные дают право, а некоторые нет. Например, когда я ставлю 499, я получаю 29,93999999999999 долларов, но когда я ставлю 500, я получаю 25,0 долларов.
-Введите количество копий для печати: 499
Общая стоимость: $29,939999999999998
-Введите количество копий для печати: 500
Общая стоимость: $25.0
Это мой код: что я делаю неправильно?
импорт java.util.Scanner;
публичный класс Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter the number of copies to print: ");
double numberOfCopies = in.nextDouble();
double cost;
double subtotal;
double totalAmount;
if(numberOfCopies >= 500) {
cost = 0.05 / numberOfCopies;
subtotal = numberOfCopies * cost;
totalAmount = subtotal * numberOfCopies;
System.out.println("The total cost is: " + " $"+ totalAmount);
} else if (numberOfCopies >= 300 && numberOfCopies <= 499) {
cost = 0.06 / numberOfCopies;
subtotal = numberOfCopies * cost;
totalAmount = subtotal * numberOfCopies;
System.out.println("The total cost is: " + " $" + totalAmount);
} else if (numberOfCopies >= 200 && numberOfCopies <= 299){
cost = 0.07 / numberOfCopies;
subtotal = numberOfCopies * cost;
totalAmount = subtotal * numberOfCopies;
System.out.println("The total cost is: " + " $" + totalAmount);
} else if (numberOfCopies >= 100 && numberOfCopies <= 199) {
cost = 0.08 / numberOfCopies;
subtotal = numberOfCopies * cost;
totalAmount = subtotal * numberOfCopies;
System.out.println("The total cost is: " + " $" + totalAmount);
} else if(numberOfCopies >= 1 && numberOfCopies <= 99) {
cost = 0.10 / numberOfCopies;
subtotal = numberOfCopies * cost;
totalAmount = subtotal * numberOfCopies;
System.out.println("The total cost is: " + " $" + totalAmount);
} else if(numberOfCopies == 0) {
System.out.println("Cannot compute cost of 0 copies");
}
}
}