在Java中存储一个长于long类型的数字

在Java中存储一个长于long类型的数字,java,Java,如何在Java中存储比long类型(MAX:9223372036854775807)长的数字 例如,号码9223372036854775820 预先感谢。 < P>必须存储超过最大值的值。< P>请考虑java API: < P>使用代码> BigInteger < /C> >如果你使用长代码,使用 BigDecimal ,如果你使用浮点号。biginger可以任意大,直到没有足够的RAM 例如: BigInteger bd = new BigInteger("92233720

如何在Java中存储比long类型(MAX:9223372036854775807)长的数字

例如,号码9223372036854775820


预先感谢。

< P>必须存储超过最大值的值。

< P>请考虑java API:

< P>使用代码> BigInteger < /C> >如果你使用长代码,使用<代码> BigDecimal <代码>,如果你使用浮点号。
biginger
可以任意大,直到没有足够的RAM

例如:

    BigInteger bd = new BigInteger("922337203685477582012312321");
    System.out.println(bd.multiply(new BigInteger("15")));
    System.out.println(bd);
输出:

13835058055282163730184684815
922337203685477582012312321

但是必须使用
biginger
方法进行计算,在示例中,您可以看到
biginger
是不可变的。

您可以使用biginger类型。

为什么要使用BigDecimal?这个数字似乎是一个整数。@Smutje谢谢你的帮助link@assylias:他也可以使用BigInteger,但在读取API时,这应该是显而易见的。严格来说,这是不正确的。他还有其他方法可以做到。。。所以“必须”这个词太过分了。@StephenC如果你给出一个解决方案,而不是你发布的内容,那会很有帮助。@NinjaElvis-为什么会有帮助?已经有4个正确的解决方案。发布副本有什么意义?一开始是重复的问题?我只是指出Kevin断言BigInteger是唯一的方法是不正确的。很少有情况下需要更长的整数类型。密码学是其中之一,但我不建议你自己写这个。即使是BigDecimal在Java7中也只是选择性地使用这些。