我正在使用Netbeans。编程新手,今天刚刚开始java并有一个问题。
System.out.println("Type a number: ");
double numberOne = Integer.parseInt(reader.nextLine());
if (numberOne > 0) {
System.out.println("The number " + numberOne + " is positive.");
} else {
System.out.println("The number " + numberOne + " isn't positive.");
}
输入整数,无论是正数还是负数,都会显示正确的信息。但是,如果我输入类似.25或7.29的内容,则会显示,但不会显示任何消息:
Type a number:
7.29
Exception in thread "main" java.lang.NumberFormatException: For input string: "7.29"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at PositiveValue.main(PositiveValue.java:9)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
我可以做些什么来使其与小数和分数一起使用?
答案 0 :(得分:2)
您有一个double
变量,并且您正在设置int
。您必须使用Double.parseDouble
函数,如下所示:
double numberOne = Double.parseDouble(reader.nextLine());
我希望它会对你有所帮助!
答案 1 :(得分:1)
使用
new Integer(1.25)
而不是
Double d = Double.parseDouble(reader.nextLine());
避免这些错误。整数只能是整数,而Double值可以是小数。
在你的情况下
{{1}}
应该给你你想要的价值。
答案 2 :(得分:1)
如果reader
的类型为Scanner
,则请使用Scanner#nextDouble
将值读为double
,并将其存储在double
变量中。
在此之后,读取该行以使用换行符:
double numberOne = reader.nextDouble();
reader.nextLine();
对于您的其他问题:
我可以做些什么来使它与(......)分数一起使用?
你应该创建一个适当的类来存储你的分子和分母,类型int
或long
,这取决于你的设计。