关于一个强制类型转换有关问题

   阅读
关于一个强制类型转换问题
本帖最后由 leet2 于 2015-03-07 22:02:04 编辑
import java.util.*;
public class Test2{
public static void main (String[] args){
Scanner in =new Scanner(System.in);
System.out.println("请输入你的成绩;");
int score=(int)(in.nextInt());
if(score>90){
System.out.println("奖励你一根棒棒糖");
}
System.out.println("正在测试");
}
}


这段代码中 我在输入分数那里设置了强制转换成int型 编译也通过了 
但是在DOS运行中 我输入了92.5 
程序报错    我不明白为什么   虽然原始题目中不需要我设置这个强制转换类型  但是我还是想问下各位高手们 
最近才开始自学Java  很多不懂的问题  我本来想百度 但是没有找到合适的答案 所以来这里请教大家
请不吝指教  谢谢!
------解决思路----------------------
恩  int score=(int)(in.nextInt()); 必须接收int 型的输入值
------解决思路----------------------
改成Float吧
你输入参数属于运行期,编译器没错不代表运行期没错。
        Scanner in =new Scanner(System.in);
        System.out.println("请输入你的成绩;");
        String input = in.next();
        float score = 0;
        try{
            score = Float.parseFloat(input);
            if(score>90){
                System.out.println("奖励你一根棒棒糖");
            }
        }
        catch (NumberFormatException e) {
            System.out.println("input illegal");
        }
------解决思路----------------------
对啊,你已经限定了输入的数据类型是int型,又去转什么呢?
阅读