import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner a = new Scanner(System.in);
System.out.println("Enter a number: ");
try{
float b = a.nextFloat();
System.out.println("You wrote " + b);
}catch(Exception n){
System.out.println("That wasn't a number, yo!");
}
a.close();
}
}
我想扫描用户输入的号码,然后确定它是否是数字。当我输入一个十进制数字(例如3.1415)时会出现问题,因为它将其检测为非数值。
答案 0 :(得分:6)
这是因为Scanner
根据您的语言环境解析浮点数。当您使用,
代替.
时,它可以使用。例如,在德国和奥地利,通常使用,
作为逗号,而不是.
,因此根据您的位置,情况也可能如此。
您可以使用以下内容将Scanner
的区域设置设置为US
a.useLocale(Locale.US);
然后您必须再次使用.
。