Я довольно новичок в Java, и я делал простой калькулятор. Проблема в том, что когда мой номер ввода, например, «3.1», он дает ошибку исключения, но при написании «3,1» он работает просто отлично.Сканирование удваивается, когда я разделяю десятичные числа запятой или точкой
У моего друга, однако, есть несколько более продвинутый калькулятор (с синтаксическим разбором строк), и когда я запускаю его код, происходит обратное: 3,1 дает ошибку исключения, 3.1 работает отлично.
Я с нетерпением ждал, чтобы узнать, что вызывает эти разные поведения.
Я сделал эту простую сумму только сейчас, и то же самое происходит, я буду редактировать и поместить его калькулятор код через несколько минут
import java.util.Scanner;
public class Tutorial_7 {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
double num1, num2;
System.out.println("Introduza os dois números");
System.out.println("1º: ");
num1 = scan.nextDouble();
System.out.println("2º: ");
num2 = scan.nextDouble();
System.out.println((num1 + num2));
scan.close();
}
}
Заключительный изменить: Он использовать Double.parseDouble()
. Получил это, разница действительно в том, где она локализована. Должен был искать его, но никогда не слышал об этой концепции раньше.
Спасибо
Не зная, что код выглядит для любого из этих реализаций, мы не можем ответить. Сожалею. –
Прочтите документацию Scanner.nextDouble(): он говорит, что он делает. Прочтите документацию Double.parseDouble(), которую, вероятно, использует ваш друг): он говорит, что он делает. Один из них локализован, другой - нет, и все это задокументировано в javadoc. –