In Oracle-Datenbank speichern ich eine Zahl 0,5 in einer Spalte mit Format-Nummer (17, 2). Und ich lese es mit einem Java-Programm (mit mybatis), und speichern Sie als String-Feld eines Entitätsobjekts. Der Wert dieses Zeichenkettenfeldes ist ".5" und nicht wie erwartet "0.5".Warum Null fehlt, wenn float-Zahlen (die zwischen 0 und 1 sind) zu String
Ich weiß, ".5" ist ein Standard-Darstellung von Float-Nummern, und kann direkt in Nummer 0.5 in den meisten Programmiersprachen konvertieren. Aber ich will es nur nicht, wenn es auf Webseiten angezeigt wird. Natürlich kann ich jederzeit zu "0.5" umwandeln, indem ich einfach überprüfe, ob der erste Buchstabe "." Ist. Ich denke, es ist trivial und leicht zu vergessen.
Ich kann auch eine Oracle-Funktion verwenden, um ein Format für die Umwandlung von Zahlen in Zeichenfolgen anzugeben. Die Funktion TO_CHAR() verwendet jedoch ein Formatmuster als Parameter, um die Ausgabekette als fixe Länge festzulegen, oder keinen Formatparameter, um 0,5 als ".5" auszugeben. Beide Verhaltensweisen sind nicht ich will. Ich will nur einen "wie es" Weg, um Zahlen zu konvertieren. Aber Orakels "wie es" ist nicht das, was ich will.
So möchte ich fragen:
Was ist der bessere Weg, um dieses Problem zu umgehen?
Sie lesen es mit welchem Java-Programm? und speichern Sie es als String-Feld eines Entitätsobjekts wie? und warum? Es sollte ein "Double" oder wahrscheinlich ein "BigDecimal" sein. – EJP
@EJP Ja, endlich hatten wir es als BigDecimal gespeichert. Und wie kann ich einen Kommentar als beste Antwort wählen? –