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