关于一个强制类型转换有关问题
阅读
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型,又去转什么呢?
阅读