J'ai un double numéro comme 223.45654543434
et je dois le montrer comme 0.223x10e+2
.
Comment puis-je faire cela en Java?
System.out.println(String.format("%6.3e",223.45654543434));
résulte en
2.235e+02
qui est le plus proche que j'obtiens.
plus d'informations: http://Java.Sun.com/j2se/1.5.0/docs/api/Java/util/Formatter.html#syntax
De Afficher les nombres en notation scientifique . ( Copier/coller car la page semble avoir des problèmes )
Vous pouvez afficher les nombres en notation scientifique en utilisant Java.text
paquet. Plus précisément DecimalFormat
classe dans Java.text
package peut être utilisé dans ce but.
L'exemple suivant montre comment procéder:
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
}
}
Cette réponse fera gagner du temps aux 40 000 personnes et plus qui recherchent la "notation scientifique Java" sur Google.
Que signifie Y dans %X.YE
?
Le nombre entre le .
et E
est le nombre de décimales (PAS les chiffres significatifs).
System.out.println(String.format("%.3E",223.45654543434));
// "2.235E+02"
// rounded to 3 decimal places, 4 total significant figures
Le String.format
vous oblige à spécifier le nombre de chiffres décimaux à arrondir. Si vous devez conserver la signification exacte du numéro d'origine, vous aurez besoin d'une solution différente.
Que signifie X dans %X.YE
?
Le nombre entre le %
et .
est le nombre minimum de caractères que la chaîne prendra. (ce nombre n'est pas nécessaire, comme indiqué ci-dessus, la chaîne se remplira automatiquement si vous l'omettez)
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