2017-12-19 4 views
0

Was tun Wenn ich ein großes Doppel habe und ich es in json Dokument als eine Zahl wie 222222222.25 ausgeben möchte?Display Double ohne wissenschaftliche Notation

fand ich viele Lösungen, aber sie alle behandeln diese als String:

System.out.println("DOUBLE1: " + String.format("%.2f", 222222222.2502)); 
System.out.println("DOUBLE2: " + String.valueOf(new Double(String.format("%.2f", 222222222.2502)))); 

Ausgang: Double1: 222.222.222,25 Doppelbett2: 2.2222222225E8

Also, was ich will, ist die Zahl haben 222.222.222,25 in Json. Wie geht das?

Ich brauche den folgenden mit Jackson zu bekommen: {Wert: 222.222.222,25} und nicht: {Wert: „222.222.222,25“}

+0

Können Sie Ihren Jackson Code mit uns teilen? AFAIK Wenn Ihr POJO ein "Double" oder "BigDecimal" verwendet, sollte Jackson die korrekte Serialisierung automatisch als Zahl verwenden. –

+0

Das Problem ist, dass die Eigenschaft json value entweder eine Ganzzahl, ein Double oder eine Zeichenfolge sein kann. Also mappe ich auf ein Objekt und entscheide, was der Wert ist. Das Dokumentmodell ist auch sehr groß, um hier zu posten. Das Mapping ist kein Problem, aber ich möchte die nicht wissenschaftliche Notation im JSON haben. –

+0

Nur der gleiche Typ konsequent durchgängig. Wenn Sie das Feld als Zahl bearbeiten müssen, verwenden Sie einen numerischen Typ. –

Antwort

1

Sie sollten Zeichenfolge konvertieren, bevor das Schreiben es zu JSON-Datei zu verdoppeln.

Verwenden Sie Double.parseDouble, um es zu funktionieren.

+0

Hmm, scheint nicht zu funktionieren, oder ich mache etwas falsch ... –

+0

Lassen Sie mich klären, ob ich Ihren Punkt klar, wollen Sie den doppelten Wert in die JSON-Datei ohne die "E8" Suffix setzen? – Gearon

+0

Ja, als Zahl und nicht als Zeichenfolge {{name}: "someName", "value": 2222222.22, "etwas": "etwas", ...} –

Verwandte Themen