Scanner.next ...为Float抛出java.util.InputMismatchException但对于Int则不抛出 [英] Scanner.next... throws java.util.InputMismatchException for Float but not for Int

查看:69
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆