2 votes

Comment convertir une chaîne de caractères 3.0103E-7 en 0.00000030103 en Java ?

Comment convertir une chaîne de 0E-11 en 0.00000000000 en Java ? Je veux afficher le nombre en notations non scientifiques. J'ai essayé de regarder le formateur de nombres en Java, cependant je dois spécifier le nombre exact de décimales que je veux mais je ne le saurai pas toujours. Je veux simplement le nombre de décimales tel que spécifié par mon nombre original.

10voto

erotsppa Points 4310

Apparemment, la bonne réponse est d'utiliser BigDecimal et de récupérer les chiffres de précision et d'échelle. Puis d'utiliser ces chiffres dans le formateur. Quelque chose de similaire à ceci :

BigDecimal bg = new BigDecimal(rs.getString(i));
Formatter fmt = new Formatter();
fmt.format("%." + bg.scale() + "f", bg);
buf.append( fmt);

7voto

BullyWiiPlaza Points 5382

Utilisation de BigDecimal :

public static String removeScientificNotation(String value)
{
    return new BigDecimal(value).toPlainString();
}

public static void main(String[] arguments) throws Exception
{
    System.out.println(removeScientificNotation("3.0103E-7"));
}

Imprimés :

0.00000030103

4voto

eugener Points 10531

J'utiliserais BigDecimal, en lui passant votre chaîne en paramètre et en utilisant String.format pour représenter votre BigDecimal nouvellement créé sans notation scientifique. Les classes Float ou Double peuvent également être utilisées.

2voto

Alysson Fonseca Points 21
double d = Double.parseDouble("7.399999999999985E-5");
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
System.out.println(f);    // output --> 0.00007

0voto

Powerlord Points 43989

Je ne l'ai pas essayé, mais java.text.NumberFormat pourrait faire ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X