关于scanner.hasNextFloat() 的问题?

我输入如下代码:

import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        float f=0.0f;
        System.out.println("请输入小数:");
        if (scanner.hasNextFloat()){
            f=scanner.nextFloat();
            System.out.println("小数数据:"+f);
        }else {
            System.out.println("输入的不是小数数据!");
        }
    }
}

运行结果如下:

image-20210723233010164

请问我输入一个整数,为什么会输出一个小数?

这是float的特性啊。有小数点。

整形会自动转换为float类型,输入字符串就可以达到你的预期效果。