Java 字符串双重转换中的编译错误

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

这是我第一次尝试自己编写Java程序

我正试图制作一个程序来说明一个数字是否是偶数。由于某种原因,我的程序不起作用。它一直说需要一个double,但我提供了一个int。我有一个parsedouble,它应该把我的字符串变成double,但我猜它写错了。谁能告诉我为什么

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询问的错误消息。