Olli Geschrieben 18. Februar 2005 Melden Share Geschrieben 18. Februar 2005 Hi seit diesem Jahr programmiere ich (beruflich) auch in Java (früher in Delphi). Der Zahlenformatierungskrampf in Java macht mich aber ziemlich durcheinander. Also: ich habe ein Locale Objekt, das deutsch ist, ich verwende deutsche Ländereinstellung in der Systemsteuerung, "," als Trenner. Das Locale Objekt hat ein NumberFormat, davon rufe ich die Methode parse auf, diese liefert mir bei einem String "1,89" eine Number, die dann String "1.89" liefert bei einem String "1.89" eine Number, die dann String "189.0" liefert Double.parseDouble(num1.doubleValue) oder so ... Warum macht das Ding mir einen Punkt? Warum multipliziert es mit 100? viele Grüsse Olli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Rinf Geschrieben 18. Februar 2005 Melden Share Geschrieben 18. Februar 2005 (bearbeitet) Warum macht das Ding mir einen Punkt?Warum multipliziert es mit 100? Hi Olli, wenn Du als Trenner ein Komma nimmst, dann ignoriert Java einen Punkt einfach - es multipliziert nicht mit 100, sondern pappt die Ziffern davor und danach einfach zusammen. Es geht nur entweder oder: Punkt oder Komma, nicht beides. Zudem reagieren nicht alle Methoden auf die Ländereinstellung - ist in Delphi auch so, da ist es ein Unterschied, ob Du die VAL-Funktion oder die String-Umwandlungsfunktion nimmst. Allgemein würde ich Dir raten, immer den Punkt zu nehmen, das ist internationaler, und, wenn Du eine Eingabe mit Komma ebenfalls zulassen willst, das Komma während der Eingabe "von Hand" in einen Punkt zu wandeln. Edit: Oh Shit! Dabei hatte ich mir so fest vorgenommen, in meinem 666-sten Posting was ganz besonders teuflisches und lästerliches zu schreiben... ;-) Gruß Ralf bearbeitet 18. Februar 2005 von Rinf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Olli Geschrieben 18. Februar 2005 Autor Melden Share Geschrieben 18. Februar 2005 Warum macht das Ding mir einen Punkt?Warum multipliziert es mit 100? Hi Olli, wenn Du als Trenner ein Komma nimmst, dann ignoriert Java einen Punkt einfach - es multipliziert nicht mit 100, sondern pappt die Ziffern davor und danach einfach zusammen. Es geht nur entweder oder: Punkt oder Komma, nicht beides. Zudem reagieren nicht alle Methoden auf die Ländereinstellung - ist in Delphi auch so, da ist es ein Unterschied, ob Du die VAL-Funktion oder die String-Umwandlungsfunktion nimmst. Allgemein würde ich Dir raten, immer den Punkt zu nehmen, das ist internationaler, und, wenn Du eine Eingabe mit Komma ebenfalls zulassen willst, das Komma während der Eingabe "von Hand" in einen Punkt zu wandeln. Edit: Oh Shit! Dabei hatte ich mir so fest vorgenommen, in meinem 666-sten Posting was ganz besonders teuflisches und lästerliches zu schreiben... ;-) Gruß Ralf Hi Rinf, ok, mein Punkt wird ignoriert, und dann wird aus 1.89 also 189. Verstanden. In Delphi ist mir das schon klar, da gibts ja den globalen DecimalSeparator, und dann weiss man, was Sache ist. Also ob auf dem verwendeten System nun Punkt oder Komma der Trenner ist. Nun hab ich in meinem Ausgangsfile z.B. ein Komma (was ja bei einer deutschen Ländereinstellung Sinn macht). Also z. B. "1233,00" oder so. Nun lese ich das ein, indem ich das File ausparse, und die Werte letztendlich per SQL in eine Datenbank schreibe. Dort landet der Wert dann letztendlich als "1.233" in der Ansicht. Würg. Nun weiss man gar nicht, da Punkt ansonsten auch als Dezimaltrenner verwendet wird, ob damit eins komma ... gemeint ist oder 1233 (was es ja eigentlich ist). Liegt aber nicht an der Ansicht der Datenbank, sondern der Wert (den ich ja letztendlich wieder als String reinschreiben muss wg. SQL kommt als String "1.233" rein). Ich hab nun den ganzen Code nicht im Kopf, aber irgendwo scheint mir Java 1233 erkannt zu haben, mir dann aber wohlmeinend einen Tausendertrenner reinzuwürgen, der dann später per SQL in der Datenbank landet. viele Grüsse Olli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Elrond Geschrieben 19. Februar 2005 Melden Share Geschrieben 19. Februar 2005 Wenn wir schon einen Programmierthread haben, haette ich auch eine Frage: Kennt jemand ein gutes OpenGL Tutorial? Ich habe zur Pruefungsvorbereitung einen Kommandozeilen-Raytracer geschrieben (man gibt eine Datei mit Triangulierungen und Szenendefinitionen und bekommt ein Bitmap mit dem geraytacten Bild) und wuerde jetzt gerne dazu den passenden grafischen NURBS Editor haben, nur bin ich weder der Qt noch der OpenGL Held. Kennt da jemand eine gute Einfuehrung zum Thema? Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
pmn Geschrieben 21. Februar 2005 Melden Share Geschrieben 21. Februar 2005 (bearbeitet) Hallo Elrond, bei Deiner Frage fällt mir ein Witz ein: Ein neues Schuljahr hat begonnen. Die 3. Klasse bekommt einen neuen Lehrer. In der ersten Stunde sollen sich alle Schülerinnen und Schüler vorstellen. Nach den Namen der Eltern fragt der Lehrer nach den Berufen der Mütter und Väter. Als der 8-jährige Hans-Heinrich an der Reihe ist, druckst er ziemlich herum und sagt schließlich verlegen: "Mein Vater spielt Klavier im Bordell." Der Lehrer kann es kaum glauben und hakt nach, aber Hans-Heinrich bleibt dabei. Als die Schule aus ist, möchte sich der Lehrer vergewissern und ruft den Vater an. Der Vater sagt zum Lehrer: "Das mit dem Klavier im Bordell ist eine Notlüge. Eigentlich arbeite ich in einem Softwarehaus und erstelle zur Zeit einen Kommandozeilen-Raytracer. Dieser liest eine Datei mit Triangulierungen und Szenendefinitionen und erzeugt ein Bitmap mit dem geraytacten Bild. Hierfür programmiere ich auch dazu den passenden grafischen NURBS Editor. Aber wie erklär ich das einem 8-Jährigen?" gruss peter bearbeitet 21. Februar 2005 von pmn Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.