我一直在查看Math
库,但我似乎无法找到一个将数字加倍并返回它的方法。
我需要做num+=num
当然上面的内容会有效,但一旦数字变大,即使我使用long
代替int
,它也不再符合我的要求。
或者它可能是数据类型而不是我需要更改的方法?
我找到了解决方案。
BigInteger num = new BigInteger("1");
num = num.add(num);
当阅读BigInteger
时,它说它是不可变的,所以我认为它不能改变价值。我想我需要更好地理解不可变的。
答案 0 :(得分:1)
有float,double,BigInteger和BigDecimal。
float的精度低于double
float AND double都不是无限的
BigInteger可以容纳无限大的值(只有整数,没有逗号!)
BigDecimal与BigInteger相同,但逗号后面也可以包含小数,即3.14
答案 1 :(得分:1)
如果你使用double:
Math.scalb(num, 1)
答案 2 :(得分:1)
BigInteger num = new BigInteger("1");
num = num.add(num);
答案 3 :(得分:-2)
这可能是我见过的第二个最微不足道的问题。
public BigInteger doubleIt(BigInteger num)
{
return num.multiply(BigInteger.valueOf(2));
}
public BigDecimal doubleIt(BigDecimal num)
{
return num.multiply(BigDecimal.valueOf(2));
}
public double doubleIt(double num)
{
return num*2.0;
}
public long doubleIt(long num)
{
return num*2;
}
最琐碎的问题是here。