Не работает код. Выдает ошибку скана

введите сюда описание изображения

package born.to.learn;

import java.util.Scanner;

public class Tasks {
    
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        System.out.print("Чтобы найти периметр круга задайте радиус: ");
        float r = scan.nextFloat();
        System.out.println("Периметр круга = " + 2 * Math.PI * r);
    }
}

Ответы (1 шт):

Автор решения: Sergey Zh.

Как написали в комментариях, разделитель в числах с плавающей точкой задаётся системой. Но код должен быть универсален и не зависеть от настроек системы.

Поэтому, вот решение:

https://www.cyberforum.ru/java/thread1002604.html

Если коротко, то можно установить локаль для сканера.

scanner.useLocale(Locale.US);

Или делать замену символов считав строку, а не число, и уже после парсить строку в число.

 .replace(",",".")
→ Ссылка