BigDecimal 中的 NumberFormatException 到 int 或 long(java)
NumberFormatException in BigDecimal to int or long(java)
我在Java中编码,我想将BigDecimal数据转成int或long,数据名称是"recovered",它的值是“889.0”,结构如下:
[在此处输入图片描述][1]
我尝试了 Long.valueOf(recovered.toString()) 和 Integer.valueOf(recovered.toString()),但两者都会生成 NumberFormatException。
我也试过恢复 recovered.toString().getBytes() 并且我得到了:
[在此处输入图片描述][2]
如何获得“889.0”的整型或长型值?
谢谢你。
[1]: https://i.stack.imgur.com/GF3tD.jpg
[2]: https://i.stack.imgur.com/TXNBb.jpg
字符串 "889.0"
不是转换为 Long
或 Integer
的有效格式,它是十进制格式,您可以将其转换为 Float
或 Double
.
如果您想要一个整数,您可以先将其转换为浮点数,然后使用 Float.intValue
将其转换为整数。
Float f = Float.valueOf(recovered.toString();
Integer i = f.intValue();
我在Java中编码,我想将BigDecimal数据转成int或long,数据名称是"recovered",它的值是“889.0”,结构如下:
[在此处输入图片描述][1]
我尝试了 Long.valueOf(recovered.toString()) 和 Integer.valueOf(recovered.toString()),但两者都会生成 NumberFormatException。
我也试过恢复 recovered.toString().getBytes() 并且我得到了: [在此处输入图片描述][2]
如何获得“889.0”的整型或长型值?
谢谢你。
[1]: https://i.stack.imgur.com/GF3tD.jpg
[2]: https://i.stack.imgur.com/TXNBb.jpg
字符串 "889.0"
不是转换为 Long
或 Integer
的有效格式,它是十进制格式,您可以将其转换为 Float
或 Double
.
如果您想要一个整数,您可以先将其转换为浮点数,然后使用 Float.intValue
将其转换为整数。
Float f = Float.valueOf(recovered.toString();
Integer i = f.intValue();