#java #methods #decimal #percentage
#java #методы #десятичный #процент
Вопрос:
Я надеялся, что кто-нибудь из SO сможет помочь мне с моим кодом. Таким образом, весь смысл программы состоит в том, чтобы попросить пользователя ввести оптовую цену на желаемый товар. Затем они вводят процент разметки для этого элемента. Программа их вычисляет розничную цену. Например, если пользователь вводит 5 для оптовой продажи, а затем вводит .100 (100%) для цены наценки, розничная цена тогда составит 10 долларов. Моя проблема в том, что, когда я когда-либо ввожу десятичное число для процента, оно выдает мне эти ошибки:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at RetailPrice.main(RetailPrice.java:10)
Это поможет, если кто-нибудь сможет дать мне какой-либо совет относительно того, что происходит не так, я пытаюсь самостоятельно обучать Java, и любая помощь / советы были бы замечательными!
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in); //make a scanner
System.out.println("Enter the wholesale cost of the item");
double cost = keyboard.nextInt();
System.out.println("Enter the markup percent as a decimal");
double percent = keyboard.nextInt();
caculateRetail(cost, percent);
}
public static void caculateRetail(double cost, double percent)
{
double total = cost * (cost*percent);
System.out.println("The retail price is $" total);
}
}
Комментарии:
1. Почему вы не используете
nextDouble
, нетnextInt
?2.
.100
не является целочисленным значением. Это также не 100%, потому что число с плавающей запятой1.00
будет равно 100%. Не имеет значения, сколько нулей вы добавляете в конце после запятой,0.1
,0.10
,0.100
,0.1000
, … все 10%.3. Целые числа не могут содержать десятичную точку. Вот почему Эндрю Ли предложил использовать
nextDouble
. Также ваша формула неверна, она должна бытьdouble total = cost * ( 1.0 percent / 100.0);
4. Ну, теперь я чувствую себя очень глупо из-за этих ошибок. Спасибо вам, ребята, за помощь.
5. @JohnSmth не стесняйтесь поддержать принятый ответ.