3

我得到一个 java.lang.NumberFormatException: For input string: "1.7023484830876092"

将字符串修剪为 1.70234,确实解决了问题,但在我自己切片字符串之前,我想知道是否可以使用一些 java 方法来利用目标对象的容量。

亲切的问候,杰罗恩。

4

4 回答 4

3

您可以尝试使用 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();
  }

这可能有效....

于 2011-01-14T09:11:32.820 回答
1

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

于 2011-01-14T09:01:03.160 回答
1

您可能想要 BigDecimal 吗?只要您有记忆力,它的大小就可以容纳任何数字。用作new BigDecimal(stringNumber). 缺点是您无法访问标准的中缀运算符(例如 + - * / 等...)。

但是,如果您只想要原语可以保存的最大值,请使用Long.MAX_VALUE

于 2011-01-14T09:15:17.487 回答
1

您不能使用 Long.parseLong 解析浮点值。请改用 Double.parseDouble。

于 2012-12-02T07:45:16.303 回答