ich den folgenden Code haben, der eine Reihe von Zahlen spaltet (durch ein Leerzeichen getrennt) und erstellt dann eine Reihe von Schwimmern:einen String-Formatierung Scientific Notation entfernen - Java
//Split the string and then build a float array with the values.
String[] tabOfFloatString = value.split(" ");
int length = tabOfFloatString.length;
System.out.println("Length of float string is" + length);
float[] floatsArray = new float[length];
for (int l=0; l<length; l++) {
float res = Float.parseFloat(tabOfFloatString[l]);
System.out.println("Float is " + res);
floatsArray[l]=res;
}
Das Problem ist, dass einige Die Werte in der Zeichenkette werden mit wissenschaftlicher Notation formatiert - zB lesen sie -3.04567E-8.
Was ich tun möchte, ist am Ende mit einem Float, der nicht die E-Nummer enthält.
Ich habe diesen Thread gelesen, der vorschlägt, dass ich BigDecimal verwenden könnte, jedoch bin ich nicht in der Lage, dies zur Arbeit zu bringen - ist das der beste Ansatz oder sollte ich etwas anderes versuchen? How to convert a string 3.0103E-7 to 0.00000030103 in Java?
Ein Schwimmer nicht die E-Nummer enthält. Die wissenschaftliche Notation ist eine der Möglichkeiten, wie Floats dargestellt werden können. Wenn das Standardformat für Sie nicht funktioniert, werfen Sie einen Blick in java.text.DecimalFormat. – theglauber