每当为我的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;
}
}
答案 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);
}
}