Fra*_*sco 2 java casting biginteger
我有一个String变量,可能包含一个这样的数字"2015.0".当我尝试将其转换为int时
int i = Integer.parseInt(myVar)
Run Code Online (Sandbox Code Playgroud)
或BigInteger
BigInteger bi = new BigInteger(myVar)
Run Code Online (Sandbox Code Playgroud)
我收到了错误
java.lang.NumberFormatException: For input string: "2015.0"
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现正确的演员表?
谢谢!
您可以将其解析为a BigDecimal然后转换为BigInteger
BigInteger bi = new BigDecimal("2015.0").toBigInteger()
Run Code Online (Sandbox Code Playgroud)
请注意,执行此操作时可能会丢失精度信息:
...此BigDecimal的任何小数部分都将被丢弃.请注意,此转换可能会丢失有关BigDecimal值精度的信息.
要在转换不精确时抛出异常(换句话说,如果丢弃非零小数部分),请使用toBigIntegerExact()方法.
正如引用的javadocs中所建议的那样,用于toBigIntegerExact()防止意外丢失精确度,例如转换"2.5"为转换后的精度损失BigInteger(感谢Ole VV对此评论的评论).
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |