29

私はのような二重の数字を持っているので、の223.45654543434ように表示する必要があり0.223x10e+2ます。

Javaでこれを行うにはどうすればよいですか?

4

4 に答える 4

35
    System.out.println(String.format("%6.3e",223.45654543434));

結果は

    2.235e+02

これは私が得る最も近いものです。

詳細: http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax

于 2010-05-31T16:56:26.503 に答える
22

科学表記法で数値を表示するから。(ページに問題があるようですのでコピペします)


java.textパッケージを使用して、科学表記法で数値を表示できます。具体的には、パッケージDecimalFormat内のクラスjava.textをこの目的に使用できます。

次の例は、これを行う方法を示しています。

import java.text.*;
import java.math.*;

public class TestScientific {

  public static void main(String args[]) {
     new TestScientific().doit();
  }

  public void doit() {
     NumberFormat formatter = new DecimalFormat();

     int maxinteger = Integer.MAX_VALUE;
     System.out.println(maxinteger);    // 2147483647

     formatter = new DecimalFormat("0.######E0");
     System.out.println(formatter.format(maxinteger)); // 2,147484E9

     formatter = new DecimalFormat("0.#####E0");
     System.out.println(formatter.format(maxinteger)); // 2.14748E9


     int mininteger = Integer.MIN_VALUE;
     System.out.println(mininteger);    // -2147483648

     formatter = new DecimalFormat("0.######E0");
     System.out.println(formatter.format(mininteger)); // -2.147484E9

     formatter = new DecimalFormat("0.#####E0");
     System.out.println(formatter.format(mininteger)); // -2.14748E9

     double d = 0.12345;
     formatter = new DecimalFormat("0.#####E0");
     System.out.println(formatter.format(d)); // 1.2345E-1

     formatter = new DecimalFormat("000000E0");
     System.out.println(formatter.format(d)); // 12345E-6
  }
}  
于 2010-05-31T16:41:41.603 に答える
-9

最後に私は手でそれを行います:

public static String parseToCientificNotation(double value) {
        int cont = 0;
        java.text.DecimalFormat DECIMAL_FORMATER = new java.text.DecimalFormat("0.##");
        while (((int) value) != 0) {
            value /= 10;
            cont++;
        }
        return DECIMAL_FORMATER.format(value).replace(",", ".") + " x10^ -" + cont;
}
于 2010-06-02T13:24:15.637 に答える