Negative Zahlen auffüllen

Speedjunkee

Mitglied
Hallo Comunity,

folgendes Problem:
Ich möchte Koordinaten immer mit 6 Stellen vor dem Komma und mit 3 Stellen nach dem Komma ausgeben, dabei kommt es auch vor, dass negative Koordinaten ausgegeben werden. Deshalb funktioniert der nachfolgende Code nicht, das Minuszeichen wird zwischen Nullen und der tatsächlichen Koordinate "eingeklemmt" und ist somit nicht mehr verwendbar.
Java:
public static String format(double value, int len)
        {
            String result = String.valueOf(value);
            while (result.length()<len)
            {
                result = "0" + result;
            }
            return result;
        }
(Quelle: Java String mit Leerzeichen oder Nullen auffüllen)

Mein Ansatz wäre, nach einen " - " zu suchen, es zu löschen, aber am Ende an den anfang zu stellen. Gibt es da von euch irgendweche Umsetzungsvorschläge oder geht es auch einfacher?

Vielen Dank im Voraus 🙂</len)
 
Hey Strußi,

danke für die Antwort. Hilft mir schon mal weiter, allerdings schreibe ich die Datei mit einem BufferedWriter. Kann ich die folgende Funktion auch in diesem verwenden?
Java:
o.printf( "|%010.2f|%010.2f|%n",d, -d );    // |0012345,68| |-012345,68|
 
Wenn du es einfach mal ausprobiert hättest, würdest du sehen, dass es nicht geht, da es solch eine Methode nicht im BufferedWiter gibt. Aber strußis Link zeigt dir auch das du String.format nehmen kannst, welches dir den formatierten String zurückgibt. Und den String kannst du dann mit deinem BufferedWriter schreiben
 
Moin,

was ist 'o' ???:L

BufferedWrite kennt (lt. Java7 API) kein "printf"!
Erstelle vorher die formatierten Strings und schreibe sie mit write !

Allderings solltest Du auch drei Parameter angeben, wenn Du drei Stück formatieren willst!

Gruß Klaus
 

Zurück
Oben