Long.parseLong(“数字字符串太重要”) 产生 java.lang.NumberFormatException

发布于 2024-10-11 23:59:22 字数 169 浏览 5 评论 0原文

我得到一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你怎么敢 2024-10-18 23:59:22

您可以尝试使用 DecimalFormat 类:

http:// /download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html

  DecimalFormat fm = new DecimalFormat("#.################");
  try {
   double x = fm.parse("1.12345678901234").doubleValue();
   System.out.println(x);
  } catch (ParseException e) {
   e.printStackTrace();
  }

这可能有效......

you could try using the DecimalFormat class:

http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html

  DecimalFormat fm = new DecimalFormat("#.################");
  try {
   double x = fm.parse("1.12345678901234").doubleValue();
   System.out.println(x);
  } catch (ParseException e) {
   e.printStackTrace();
  }

this might work....

薔薇婲 2024-10-18 23:59:22

它看起来像一个漂浮物。尤其是从第一个“.”开始是唯一的一个。

It looks like a float. Especially since the first "." is the only one.

南街九尾狐 2024-10-18 23:59:22

您可能想要 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

黯然 2024-10-18 23:59:22

您无法使用 Long.parseLong 解析浮点值。使用 Double.parseDouble 代替。

You cannot parse floating point values with Long.parseLong. Use Double.parseDouble instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文