Long.parseLong(“数字字符串太重要”) 产生 java.lang.NumberFormatException
我得到一个 java.lang.NumberFormatException: 对于输入字符串:“1.7023484830876092”
将字符串修剪为1.70234,确实解决了问题,但在我自己切片字符串之前,我想知道是否可以使用一些java方法来利用目标对象的容量。
亲切的问候, 杰罗恩。
I get a java.lang.NumberFormatException:
For input string: "1.7023484830876092"
trimming the string to 1.70234, does solve the problem, but before slicing the string myself I'm wondering whether its possible to use some java methods to leverage the capacity of the target object.
kind regards,
jeroen.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以尝试使用 DecimalFormat 类:
http:// /download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
这可能有效......
you could try using the DecimalFormat class:
http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
this might work....
它看起来像一个漂浮物。尤其是从第一个“.”开始是唯一的一个。
It looks like a float. Especially since the first "." is the only one.
您可能想要 BigDecimal 吗?只要您有足够的内存,它的大小就可以容纳任何数量。用作
new BigDecimal(stringNumber)
。缺点是您无法访问标准中缀运算符(例如 + - * / 等...)。但如果您只想要基元可以保存的最大值,请使用
Long.MAX_VALUE
Do you perhaps want BigDecimal? It's variably sized to accommodate any number, so long as you have the memory. Use as
new BigDecimal(stringNumber)
. Downside is you don't get access to the standard infix operators(eg. + - * / etc...).But if you just want the largest value that can be held by a primitive then use
Long.MAX_VALUE
您无法使用 Long.parseLong 解析浮点值。使用 Double.parseDouble 代替。
You cannot parse floating point values with Long.parseLong. Use Double.parseDouble instead.