Java Double String Konvertierung ohne Formatierung
Frage
Ich habe die Nummer 654987. Seine eine ID in einer Datenbank. Ich möchte es in eine Zeichenfolge konvertieren. Der reguläre Double.ToString (Wert) macht es in wissenschaftliche Form, 6.54987E5. Etwas, das ich nicht wollen.
Andere Formatierungsfunktionen gefunden Ive überprüfen die aktuellen locale und fügen entsprechende Tausendertrennzeichen und so weiter. Seit seiner einer ID, kippe ich überhaupt keine Formatierung übernehmen.
Wie es zu tun?
[Bearbeiten] Zur Klarstellung: Im auf einer speziellen Datenbank arbeiten, die alle numerischen Spalten als verdoppelt behandelt. Double ist die einzige (numerisch) Typ I aus der Datenbank abrufen kann.
Lösung
Verwenden Long:
long id = 654987;
String str = Long.toString(id);
Andere Tipps
Verwenden Sie eine feste NumberFormat
(insbesondere ein DecimalFormat
):
double value = getValue();
String str = new DecimalFormat("#").format(value);
alternativ einfach zu gieße int
(oder long
wenn der Wertebereich es zu groß):
String str = String.valueOf((long) value);
Aber dann wieder: warum haben Sie einen Integer-Wert (das heißt ein „ganzer“ -Nummer) in einer double
Variable in erster Linie
Wenn es eine ganze Zahl ID in der Datenbank, eine Integer stattdessen verwenden. Dann wird es als eine ganze Zahl formatiert werden.
Wie wäre es String.valueOf((long)value);
Was ist mit:
Long.toString(value)
oder
new String(value)
Sie können auch verwenden
double value = getValue();
NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
String strVal = f.format(value);
Wenn das, was Sie speichern eine ID (das heißt etwas verwendet, nur ein anderes Unternehmen zu identifizieren, deren tatsächlichen numerischen Wert hat keine Bedeutung), dann sollten Sie nicht doppelt verwenden zu speichern. Präzision wird mit ziemlicher Sicherheit schrauben Sie.
Wenn Ihre Datenbank nicht ganzzahlige Werte zulassen, dann sollten Sie IDs als Strings gespeichert. Bei Bedarf kann die Zeichenfolge die String-Darstellung der ganzen Zahl machen Sie verwenden möchten. Bei entsprechender Verwendung von führenden Nullen können Sie die alphabetische Reihenfolge des String machen das gleiche wie die numerische Reihenfolge der ints.
Das sollte erhalten Sie das Problem abrunden.
Was ist Long.toString ((long) Wert)?
double d = 56789;
String s = d+"";