Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让java检测是否有小数点_Java_If Statement_Integer_Double - Fatal编程技术网

如何让java检测是否有小数点

如何让java检测是否有小数点,java,if-statement,integer,double,Java,If Statement,Integer,Double,我正在用java做一个calulator程序,在swing上有一个GUI。我的计算器在一次运算后,比如说乘法会抛出一个双精度,即使没有小数点,这个数字也会查找ex,如下所示:2*2=4,0。我想知道是否有办法让程序检测它是否需要显示十进制,所以如果数字是整数,它会显示一个整数,比如:2*2=4。 我试着这样做: JButton btnEquals = new JButton("="); btnEquals.addActionListener(new ActionListener(

我正在用java做一个calulator程序,在swing上有一个GUI。我的计算器在一次运算后,比如说乘法会抛出一个双精度,即使没有小数点,这个数字也会查找ex,如下所示:2*2=4,0。我想知道是否有办法让程序检测它是否需要显示十进制,所以如果数字是整数,它会显示一个整数,比如:2*2=4。 我试着这样做:

JButton btnEquals = new JButton("=");
        btnEquals.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                SecondNum = Double.parseDouble(txtDisplay.getText());
                if (operation == "+") {
                    txtDisplay.setText(String.valueOf(FirstNum + SecondNum));
                    if ((FirstNum + SecondNum) == Integer.parseInt(String.valueOf(FirstNum + SecondNum))){
                        txtDisplay.setText(String.valueOf(Integer.parseInt(String.valueOf(FirstNum + SecondNum))));
                    }
                }
            }

在第一个“如果”中,我做了第二个,如果第一个数字和第二个数字的双精度结果等于此操作的等效整数,则显示器应显示整数形式,不需要sinc double。这不起作用,程序崩溃。

现在您正在将SecondNum解析为一个double,这就是为什么会得到一个double结果。我会使用一个模数运算符%。如果(sumResult%1!=0),您知道它需要小数点,您应该分析double。如果它为==0,则可以解析整数。

应该执行您需要的操作。DecimalFormat只能呈现@chemicalcrux所说的所需的小数位数。这也是不好的:
if(operation==“+”){
。您不希望使用
==
!=
来比较字符串,而是应该使用
.equals(…)
method因为您不想比较引用相等,所以两个字符串表示完全相同的对象,而是“函数相等”,这两个字符串具有相同顺序的相同字符。