Java/scala BigDecimal 解析 128 位十六进制值

Posted

技术标签:

【中文标题】Java/scala BigDecimal 解析 128 位十六进制值【英文标题】:Java/scala BigDecimal parsing 128 bit hex value 【发布时间】:2013-05-07 15:07:08 【问题描述】:

我有一个号码,在本例中是 61d54e71b6c8409f9586ffd4cf9ffada。

我想使用它的数字表示。

在 python 中我会这样做:

 number = 61d54e71b6c8409f9586ffd4cf9ffada

但我使用的是 Scala,而不是 python。

我试过了:

scala> val bd = BigDecimal("61d54e71b6c8409f9586ffd4cf9ffada")
java.lang.NumberFormatException

还有:

scala> val bd = BigDecimal("0x61d54e71b6c8409f9586ffd4cf9ffada")
java.lang.NumberFormatException

如果数字更小,我可以这样做:

scala> val bd = 0x61d54e
bd: Int = 6411598

有人有什么建议吗?

【问题讨论】:

【参考方案1】:
scala> BigInt("61d54e71b6c8409f9586ffd4cf9ffada",16)
res0: scala.math.BigInt = 130042665859304569025379016689359780570

【讨论】:

或者:scala> new java.math.BigInteger("61d54e71b6c8409f9586ffd4cf9ffada", 16) res16: java.math.BigInteger = 130042665859304569025379016689359780570

以上是关于Java/scala BigDecimal 解析 128 位十六进制值的主要内容,如果未能解决你的问题,请参考以下文章

解析类型时不存在 BigDecimal

带大括号的 Java 负 bigdecimal 值

java - 如何将浮点数转换为 BigDecimal? [复制]

Swift 中的 Java BigDecimal

Json数据解析的时候,数字字符串变成了科学计数法,怎么解决

scala-native 可以使用现有的 Java/Scala 库吗?