Scanner.next ...为Float抛出java.util.InputMismatchException但对于Int则不抛出 [英] Scanner.next... throws java.util.InputMismatchException for Float but not for Int
本文介绍了Scanner.next ...为Float抛出java.util.InputMismatchException但对于Int则不抛出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么在使用Scanner.nextFloat()而不是Scanner.nextInt()时Java会引发错误?
Why does Java throw an error when using Scanner.nextFloat() but not Scanner.nextInt() ?
package myshit;
import java.lang.Math;
import java.util.Scanner;
public class speed2 {
public static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args){
float number = keyboard.nextFloat();
System.out.print("Start");
}
}
输入:
2.5
输出:
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.nextFloat(Unknown Source)
at myshit.speed2.main(speed2.java:10)
但是只要将nextFloat切换为nextInt,就不会发生错误:
But just by switching nextFloat to nextInt no error occurs:
package myshit;
import java.lang.Math;
import java.util.Scanner;
public class speed2 {
public static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args){
int number = keyboard.nextInt();
System.out.print("Start");
}
}
输入:
3
输出:
Start
我在做什么错了?
似乎我需要输入,而不是. 似乎是因为Eclipse
Appears i needed to input , instead of . Seems to be because of Eclipse
推荐答案
您应该输入2,5而不是2.5(我认为这只发生在Netbeans中,有趣的事实是它被解析为2.5)
You should type it like 2,5 not 2.5 ( i think this only happens in Netbeans, funny fact that it get parsed to 2.5 )
run:
2,5
Your number is 2.5
在Netbeans中使用符号2.5.
Using the notation 2.5 in Netbeans.
run:
2.5
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextFloat(Scanner.java:2345)
at test.Test.main(Test.java:25)
这篇关于Scanner.next ...为Float抛出java.util.InputMismatchException但对于Int则不抛出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文