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

おそらくBigDecimalが必要ですか?メモリがある限り、任意の数に対応できるようにサイズを変更できます。として使用しnew BigDecimal(stringNumber)ます。欠点は、標準の中置演算子(+-* /など)にアクセスできないことです。

ただし、プリミティブが保持できる最大の値が必要な場合は、Long.MAX_VALUE

于 2011-01-14T09:15:17.487 に答える
1

Long.parseLong を使用して浮動小数点値を解析することはできません。代わりに Double.parseDouble を使用してください。

于 2012-12-02T07:45:16.303 に答える
1

浮き輪のようです。特に最初の「。」以来。唯一のものです。

于 2011-01-14T09:01:03.160 に答える