如何让java检测是否有小数点
我正在用java做一个calulator程序,在swing上有一个GUI。我的计算器在一次运算后,比如说乘法会抛出一个双精度,即使没有小数点,这个数字也会查找ex,如下所示:2*2=4,0。我想知道是否有办法让程序检测它是否需要显示十进制,所以如果数字是整数,它会显示一个整数,比如:2*2=4。 我试着这样做:如何让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(
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因为您不想比较引用相等,所以两个字符串表示完全相同的对象,而是“函数相等”,这两个字符串具有相同顺序的相同字符。