我在 Scala 中尝试了以下命令并获得NumberFormatException
,但我不确定原因。这可能是一些基本的东西,但我肯定会欣赏一双额外的眼睛。非常感谢你!
" 11111000000000000000" .toLong
java.lang.NumberFormatException:对于输入字符串: " 11111000000000000000"在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在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) 在scala.collection.immutable.StringOps.toLong(StringOps.scala:30)
...... 33没过了
答案 0 :(得分:4)
方法
signed decimal long
将字符串参数解析为11111000000000000000
(使用10的基数)。 Long
,当被视为基数10时,数字大于java.lang.NumberFormatException
的最大值,这就是投放Long.parseLong("11111000000000000000", 2)
的原因。
你正在寻找的机会
body {
padding: 20px;
text-align:center;
}
.container {
text-align: center;
}
h1,
h2 {
font-weight: normal;
color: #0088dd;
text-align: center;
}
h1 {
background-image: url("images/bob.gif");
background-repeat: no-repeat;
text-indent: -9999px;
padding-bottom: 3%;
}
h2 {
display:inline;
padding: 10px;
width: 12em;
font-family: "Gill Sans", Arial, sans-serif;
font-size: 90%;
text-transform: uppercase;
letter-spacing: 0.2em;
border: 2px solid #0088dd;
border-right: none;
border-bottom: none;
margin: 0 auto;
}
将数字视为二进制(基数为2)。
否则你可能需要查看java.math.BigInteger
,它可以处理任意精度整数。
答案 1 :(得分:3)
9223372036854775807 // maximum value of Long
11111000000000000000 // your value
注意什么?
答案 2 :(得分:2)
长距离为64位
–9,223,372,036,854,775,808
到
9 ,223,372,036,854,775,807
或使用 BigInteger 例如: 使用构造函数
String val="111110000000000000000"
BigInteger(String val)
将BigInteger的十进制字符串表示形式转换为BigInteger。