输入double作为int时,尝试输出不带小数的double

时间:2019-03-17 20:46:42

标签: java int double

每当为我的double输入一个int值时,我都试图打印一个int值。例如用户输入123456,输出123456;用户输入1.0,输出1.0。截至目前,我的代码无论如何都打印出了两倍。这是我的fullCellText方法。

我的代码:

package textExcel;

public class ValueCell extends RealCell {
    private boolean isInt;
    public ValueCell(String cell) { 
        super(cell);
        // TODO Auto-generated constructor stub
    }
    public ValueCell(String cell, boolean isInt) { 
        super(cell);
        this.isInt = isInt;
        // TODO Auto-generated constructor stub
    }
    public String fullCellText() {
        return "" + cell;
    }

}

2 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了您的问题,但我认为您正在尝试打印不带小数的双精度型。

您可以通过执行以下操作将double值转换为int值:int x = (int) y这里y是double。现在,如果您打印x,则不会得到任何小数位。

注意: int类型转换不是一个好主意,因为您的双精度类型可能超出了范围。

答案 1 :(得分:0)

我建议对输入的字符串进行点检

if (yourString.contains("."))

这不是解决此问题的最佳方法,但它可行。

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String buff = scanner.nextLine();
        if (buff.contains(".")){
            double tempDouble = Double.parseDouble(buff);
            System.out.println(tempDouble);
        } else {
            int integer = Integer.parseInt(buff);
            System.out.println(integer);
        }
    }