是否有一个Java方法会返回一个加倍的数字?

时间:2014-11-12 22:19:06

标签: java

我一直在查看Math库,但我似乎无法找到一个将数字加倍并返回它的方法。

我需要做num+=num

的事情

当然上面的内容会有效,但一旦数字变大,即使我使用long代替int,它也不再符合我的要求。

或者它可能是数据类型而不是我需要更改的方法?

我找到了解决方案。

 BigInteger num = new BigInteger("1");
 num = num.add(num);

当阅读BigInteger时,它说它是不可变的,所以我认为它不能改变价值。我想我需要更好地理解不可变的。

4 个答案:

答案 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