Процент метода Java

#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 не стесняйтесь поддержать принятый ответ.