Formatieren von Gleitkommazahlen

Greeco-K

Mitglied
Hallo zusammen!

Ich habe folgendes Problem:
ich möchte große zahlen in "Exponentialschreibweise" umformen. Soll heißen das aus 123456789 -> 1.2346e8 umformen möchte. Ich darf aber immer nur 8 Zeichen benutzen (1.2346e8 sind 8 Zeichen) oder in anderen Worten, immer auf 4 Komma stellen genau.

Ich habe bereits versucht mit DecimalFormat herumzuhantieren... hat aber nicht wirklich geklappt.

Wie gesagt. Immer 8 Zeichen und das ganze in zehner potenzen (eX).

Hat jemand eine Idee? Hoffe mein Problem ist klar geworden... ;(

Beste Grüße
 
Zuletzt bearbeitet:
Ja das hab ich sogar gerade probiert! =)

Hier mal mein Code:

Java:
import java.text.*;

public class test {

	public static void main(String[] args){
		// TODO Auto-generated method stub
		double zahl = 123456789;
		System.out.println(zahl); // 1.23456789E8 (Warum die Zahl hier schon mit E8 ausgegeben wird verstehe ich zwar nicht ganz aber gut...
		
		
		NumberFormat formatter = new DecimalFormat();
		formatter = new DecimalFormat("0.####E0");
		System.out.println(formatter.format(zahl)); // 1,2346E8

	} // end main	
	
}

So! Ich möchte jetzt aber einen Punkt (.) statt ein Komma (,). Ich hab gelesen das hängt von der eingestellten Sprache ab... aber kann man das nicht noch anders beeinflussen? Ich hätte auch noch gern ein Plus (+) nach dem E ...

Ideen?
 
So ich bin dem ganzen schon sehr nahe! =)

Hier nochmal mein aktueller Code:
Java:
import java.text.*;
public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double zahl = 1000000000.0;
		
		NumberFormat formatter = new DecimalFormat();
		formatter = new DecimalFormat("0.0000E0");
		System.out.println(formatter.format(zahl).replace(',', '.')); // 1.0000E9

	}

}

Jetzt habe ich nur noch das Problem, dass wenn die Zahlen 11 Stellig oder größer werden, ich einen zweistelligen exponenten erhalte und dann wieder über die 8 Zeichen schieße. Ich würde jetzt einfach eine Fallunterscheidung machen und bei noch größeren Zahlen dann eine Kommastelle weglassen. Gibt es vielleicht noch eine elegantere Möglichkeit? Ansonsten schonmal tausend Dank! Super Tips und super Links! =)

Grüße
 

Neue Themen


Zurück
Oben