私はのような二重の数字を持っているので、の223.45654543434
ように表示する必要があり0.223x10e+2
ます。
Javaでこれを行うにはどうすればよいですか?
私はのような二重の数字を持っているので、の223.45654543434
ように表示する必要があり0.223x10e+2
ます。
Javaでこれを行うにはどうすればよいですか?
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
科学表記法で数値を表示するから。(ページに問題があるようですのでコピペします)
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
}
}
最後に私は手でそれを行います:
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;
}