如何在Java中舍入大于long类型最大值的数字?

Tho*_*yer 1 java rounding type-conversion

我要处理非常大的双值,我必须将它们舍入到下一个完整数字.如果我舍入双值,我总是会收到值9.223372036854776E18,它恰好是最大长值.如何舍入大于此值的值?

编辑:只是为了澄清:我不是Java程序员,来自C前端.我在这个案子上帮朋友.我尝试了unsigned(显然没有用),谷歌搜索并找到了BigDecimal和BigInteger.尝试投掷他们,它碰巧崩溃.这就是我来到这里的原因.谢谢你的帮助!

kos*_*osa 5

BigDecimal 将是包含大于long的值的解决方案.

阅读此BigDecimal javadoc

你需要实例化BigDecimal(yourDoubleValue);而不是强制转换.

  • @Tom:没有在基元和引用类型之间进行转换的事情.你应该做`BigDecimal.valueOf(doubleValue)`; (3认同)