2017-12-19 18 views
0

私は大きなダブルがあり、それを222222222.25のような番号としてjsonドキュメントに出力したいのですか?二重表示の科学的表記

私は多くのソリューションを見つけましたが、それらはすべて文字列としてこれを扱う:

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

出力: ダブルサイズ:222222222.25 ダブルサイズ:2.2222222225E8

それでは、私がしたいことで数222222222.25を持つことですjson。どうやってするか?

私はジャクソンを使用して、以下を取得する必要があります。 {値:222222222.25} ない: {値:「222222222.25」}

+0

ジャクソンコードを私たちと共有できますか? AFAIKあなたのPOJOが 'Double'または' BigDecimal'を使用している場合、Jacksonは正しいシリアル化を自動的に数字として使うべきです。 –

+0

問題は、json valueプロパティが整数、倍精度、または文字列のいずれかになりうることです。したがって、私はObjectにマッピングして、値が何であるかを決定しています。ドキュメントモデルも非常に大きく、ここに投稿してください。マッピングは問題ありませんが、私はjsonに非科学的表記をしたいと思います。 –

+0

全体を通して一貫して同じタイプ。フィールドを数値として扱う必要がある場合は、数値タイプを使用します。 –

答えて

1

あなたはJSONファイルに書き込む前に倍増する文字列を変換する必要があります。

Double.parseDoubleを使用して機能させます。

+0

うーん、うまくいかない、または何か間違ったことをしている... –

+0

あなたのポイントがはっきりと分かるかどうかを明確にするために、JSONファイルに二重の値を "E8"接尾辞なしで入れたいですか? – Gearon

+0

はい、数値で、文字列ではありません。{"name": "someName"、 "value":2222222.22、 "something": "something"、...} –

関連する問題