我有此代码:
public class doubles() {
private Double a;
public Double getA(){
return this.a
}
public void setA(Double a){
this.a = a
}
}
例如,我希望变量'a'保留整数的属性
**setA(13)**
即a = 13而不是a = 13.0
例如,我仍然希望变量'a'具有Double的属性
**setA(13.32)**
即a = 13.32
答案 0 :(得分:2)
这是您所需要的小代码。请记住,我强烈建议不要遵循此原则。
public class Example {
private Number a;
public Number getA() {
return a;
}
public void setA(Double a) {
if (a % 1 == 0) {
this.a = a.intValue();
} else {
this.a = a;
}
}
public void setA(int a) {
this.a = a;
}
public static void main(String[] args) {
double integerNumber = 6;
Example example = new Example();
example.setA(integerNumber);
System.out.println(example.getA());
}
}
答案 1 :(得分:2)
或者使用在另一个答案中提出的基类 Number ,也可以使用 BigDecimal :一种存储精度/小数位的类。因此3.10 * 2.00 = 6.2000。
new BigDecimal("3.10").multiply(new BigDecimal("2.00"))
缺点:笨拙的冗长。
优点:精度(称为标度)并且不具有浮点近似误差:3.1 = 3.100 =实际上是3.099999871 ...