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
From 科学表記法で数値を表示 。 (ページに問題があるようだからコピー/貼り付け)
Java.text
パッケージを使用して、科学表記法で数値を表示できます。具体的には、Java.text
パッケージのDecimalFormat
クラスをこの目的に使用できます。
次の例は、これを行う方法を示しています。
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
}
}
この答えは、「Java科学表記法」をグーグルで扱っている4万人以上の人々の時間を節約します。
Yは%X.YE
でどういう意味ですか?
.
とE
の間の数字は、小数点以下の桁数です(有効数字ではありません)。
System.out.println(String.format("%.3E",223.45654543434));
// "2.235E+02"
// rounded to 3 decimal places, 4 total significant figures
String.format
メソッドでは、丸める小数点以下の桁数を指定する必要があります。元の数値の正確な意味を保持する必要がある場合は、別のソリューションが必要になります。
Xは%X.YE
で何を意味しますか?
%
と.
の間の数字は、文字列が使用する最小文字数です。(この数字は必要に応じて、上記のように、文字列を省略すると自動的に入力されます)
System.out.println(String.format("%3.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%9.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%12.3E",223.45654543434));
// " 2.235E+02" <---- 12 total characters, 3 spaces
System.out.println(String.format("%12.8E",223.45654543434));
// "2.23456545E+02" <---- 14 total characters
System.out.println(String.format("%16.8E",223.45654543434));
// " 2.23456545E+02" <---- 16 total characters, 2 spaces