Java 字符串双重转换中的编译错误
这是我第一次尝试自己编写Java程序 我正试图制作一个程序来说明一个数字是否是偶数。由于某种原因,我的程序不起作用。它一直说需要一个double,但我提供了一个int。我有一个parsedouble,它应该把我的字符串变成double,但我猜它写错了。谁能告诉我为什么Java 字符串双重转换中的编译错误,java,compiler-errors,Java,Compiler Errors,这是我第一次尝试自己编写Java程序 我正试图制作一个程序来说明一个数字是否是偶数。由于某种原因,我的程序不起作用。它一直说需要一个double,但我提供了一个int。我有一个parsedouble,它应该把我的字符串变成double,但我猜它写错了。谁能告诉我为什么 package javaapplication2; import javax.swing.JOptionPane; public class JavaApplication2 { public void main(St
package javaapplication2;
import javax.swing.JOptionPane;
public class JavaApplication2 {
public void main(String[] args) {
int a;
String number;
number = JOptionPane.showInputDialog("What is your number");
number = Double.parseDouble(number);
a = number
if ( ( number % 2 ) == 0 );
System.out.println("That is an even number");
System.exit(0);
}
}
数字定义为字符串,而不是双精度。您需要一个double
变量来保存解析后的值
Double myDouble = Double.parseDouble(number);
数字定义为字符串,而不是双精度。您需要一个double
变量来保存解析后的值
Double myDouble = Double.parseDouble(number);
该代码有几个问题:
a=number
行后面应该有一个分号number = Double.parseDouble(number);
不起作用,因为数字不是字符串。我想你的意思是:
a = Double.parseDouble(number);
parseDouble
函数返回一个double
,它是一个浮点值。不能将其分配给整数值int
。您需要改用Integer.parseInt(number)
main
功能必须是static
if
语句后面不应该有分号package javaapplication2;
import javax.swing.JOptionPane;
public class JavaApplication2 {
public static void main(String[] args) {
int a;
String number;
number = JOptionPane.showInputDialog("What is your number");
a = Integer.parseInt(number);
if ( ( a % 2 ) == 0 )
System.out.println("That is an even number");
System.exit(0);
}
}
该代码有几个问题:
a=number
行后面应该有一个分号number = Double.parseDouble(number);
不起作用,因为数字不是字符串。我想你的意思是:
a = Double.parseDouble(number);
parseDouble
函数返回一个double
,它是一个浮点值。不能将其分配给整数值int
。您需要改用Integer.parseInt(number)
main
功能必须是static
if
语句后面不应该有分号package javaapplication2;
import javax.swing.JOptionPane;
public class JavaApplication2 {
public static void main(String[] args) {
int a;
String number;
number = JOptionPane.showInputDialog("What is your number");
a = Integer.parseInt(number);
if ( ( a % 2 ) == 0 )
System.out.println("That is an even number");
System.exit(0);
}
}
下面是完整的代码,它检查数字是奇数还是偶数,您将发现代码中的错误
import javax.swing.JOptionPane;
public class JavaApplication2 {
public static void main(String[] args) {
int a;
String number;
number = JOptionPane.showInputDialog("What is your number");
//Double d = Double.parseDouble(number);//For Double
a=Integer.parseInt(number);//Because of you declared a as int
if ( ( a % 2 ) == 0 )//;
System.out.println("That is an even number");
else{
System.out.println("That is an odd number");
}
System.exit(0);
}
}
以下是输出1:
输出2
输出3
输出4
以下是完整的代码,它检查数字是奇数还是偶数,您将发现代码中的错误
import javax.swing.JOptionPane;
public class JavaApplication2 {
public static void main(String[] args) {
int a;
String number;
number = JOptionPane.showInputDialog("What is your number");
//Double d = Double.parseDouble(number);//For Double
a=Integer.parseInt(number);//Because of you declared a as int
if ( ( a % 2 ) == 0 )//;
System.out.println("That is an even number");
else{
System.out.println("That is an odd number");
}
System.exit(0);
}
}
以下是输出1:
输出2
输出3
输出4
不抱歉,它说我需要一个int,但我提供了一个字符串,但是parsedouble应该将字符串更改为int。但我认为它没有这样做。我说的对吗?首先让你的主要方法是静态的。第二:删除行a=编号。将number=Double.parseDouble(number)更改为Double d=Double.parseDouble(number);第三:检查d模2是否为静态,这不意味着它不返回值吗?好的,我按你说的做了,看起来很清楚,但看起来我有另一个问题。当我运行该程序时,它会提示我输入另一个我认为已删除的程序。我试图运行的程序在我的桌面上保存为java文件。这是否意味着parse double不能存储在string变量中,我必须创建一个新的变量,在这种情况下为d?不,很抱歉,它说我需要一个int,但我提供了一个string,但是parsedouble应该将字符串更改为int。但我不认为它是这样做的。我说的对吗?首先让你的主要方法是静态的。第二:删除行a=编号。将number=Double.parseDouble(number)更改为Double d=Double.parseDouble(number);第三:检查d模2是否为静态,这不意味着它不返回值吗?好的,我按你说的做了,看起来很清楚,但看起来我有另一个问题。当我运行该程序时,它会提示我输入另一个我认为已删除的程序。我试图运行的程序在我的桌面上保存为java文件。这是否意味着parse double不能存储在字符串变量中,我必须创建一个新的变量,在这种情况下为d?您忘记了,“if语句后不应该有分号。”@Eric感谢您捕捉到这一点。现在已修复。此代码有错误:
编号
是字符串,如何执行(编号%2)==0
。看我的answer@KalathokiL. 修正了这个问题。你忘了,“if语句后面不应该有分号。”@Eric谢谢你的理解。现在已修复。此代码有错误:编号
是字符串,如何执行(编号%2)==0
。看我的answer@KalathokiL. 修复了这个问题。为什么使用包装类而不是原语?我只处理了OP询问的错误消息。为什么使用包装类而不是原语?我只处理了OP询问的错误消息。