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.

War es hilfreich?

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+"";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top