0

Javaで合計したい。

それで、

例えば、

1.123 + 1.123E-4 = 0.0123411234

では、Javaで「E」を処理するにはどうすればよいですか?

4

5 に答える 5

2

使用BigDecimal

public static void main( String[] args ) {
    BigDecimal bigDecimal1 = new BigDecimal( "1.123" );
    BigDecimal bigDecimal2 = new BigDecimal( "1.123E-4" );
    BigDecimal sum = bigDecimal1.add( bigDecimal2 );
    System.out.println( sum );
}

出力:

1.1231123
于 2012-08-08T02:22:41.730 に答える
1

BigDecimalクラスを使用します。「1.123E-」のような文字列を受け取るコンストラクタについては、http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String)を参照してください。 4"。

于 2012-08-08T02:22:32.400 に答える
0

これを行うために使用Double.parseDouble()します...

String n1 = "1.123";
String n2 = "1.123E-4";

double dn1 = Double.parseDouble(n1);
double dn2 = Double.parseDouble(n2);


System.out.println("Total : " + (dn1 + dn2));

出力:

1.1231123
于 2012-08-08T05:07:34.153 に答える
0

このような意味ですか?

String a = "1.123";
String b = "1.123E-4";

double d1 = Double.valueOf(a);
double d2 = Double.valueOf(b);

System.out.println("sum = " + (d1 + d2));

DoubleのvalueOf()メソッドは、teE表記を解析できます

そして実際には、結果は次のようになります:1.1231123

于 2012-08-08T02:22:13.087 に答える
0

さて、あなたもそれを試しましたか?

final class SciNotationTest {

  public static void main(final String[] argv) {
    final double sum = 1.123 + 1.123E-4;
    System.out.println(sum);
    assert 1.1231123 == sum;
  }
}

C:\dev\scrap>javac SciNotationTest.java

C:\dev\scrap>java -ea SciNotationTest
1.1231123

double浮動小数点は不正確であることが多いため、許容誤差なしで同等性を使用およびテストする場合は注意が必要です。高精度を目指しているのであれば、実際にを使用してBigDecimalください。

于 2012-08-08T02:27:15.117 に答える