private char whatThing() {
double random = Math.random();
String f = String.format("%.2f", random);
double formattedRandom = Double.parseDouble(f);
if(formattedRandom < 0.33) {
return 'R';
} else if(formattedRandom >= 0.33 && formattedRandom < 0.66) {
return 'P';
} else {
return 'S';
}
}
Выводит ошибку NumberFormatException:
Exception in thread "main" java.lang.NumberFormatException: For input string: "0,47" at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at sun.misc.FloatingDecimal.parseDouble(Unknown Source) at java.lang.Double.parseDouble(Unknown Source) at RPSEngine.whatThing(RPSEngine.java:28) at RPSEngine.(RPSEngine.java:8) at RPSSheath.(RPSSheath.java:30) at RPSSheath.main(RPSSheath.java:43)
Чтобы получить число с точностью до двух цифр после запятой, нужно указать следующее выражение:
%1$,.2f
Таким образом код будет выглядеть так:
double number = Math.random();
String str = String.format("%1$,.2f", number);
System.out.println(number);
System.out.println(str);
0.3086820994984767
0.31
Вот такой вариант делает тоже самое, но проще
private char whatThing() {
final Random random = new Random();
int choice = random.nextInt(2);
switch (choice) {
case 0:
return 'R';
case 1:
return 'P';
default:
return 'S';
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Такая проблема, не знаю в чем сольДля теста, в программе надо сделать имитацию нажатия правой кнопки мыши, чтобы перейти в определенную форму
Делаю приложение под Андроид в Android StudioТребуется чтоб приложение узнала дату и месяц у устройства,а после этого в зависимости от даты загрузить...
Имеется программа - исполняемый файлexe, которая выполняется на Windows