我在Scala 中尝试了以下命令并得到了一个NumberFormatException,但我不知道为什么。这可能是一些基本的东西,但我当然会欣赏一双额外的眼睛。非常感谢!
"11111000000000000000".toLong
java.lang.NumberFormatException:对于输入字符串:"11111000000000000000" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:592) at java.lang.Long。 parseLong(Long.java:631) at scala.collection.immutable.StringLike$class.toLong(StringLike.scala:276) at scala.collection.immutable.StringOps.toLong(StringOps.scala:30)
... 33 省略
方法
Long.parseLong(String s)
Run Code Online (Sandbox Code Playgroud)
将字符串参数解析为 a signed decimal long(使用 10 的基数)。11111000000000000000,当被视为基数为 10 的数字大于 的最大值时Long,这就是java.lang.NumberFormatException抛出 的原因。
您正在寻找机会
Long.parseLong("11111000000000000000", 2)
Run Code Online (Sandbox Code Playgroud)
它将数字视为二进制(基数为 2)。
否则,您可能想查看java.math.BigInteger 哪些可以处理任意精度整数。
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |