0

次のようにJSONArrayに長い値(ミリ秒)を入れようとしています:

         long epoc = 1359231233L;
         long milli = epoc*1000;
         System.out.println(milli);
         JSONArray arr = new JSONArray();
         arr.put((Long)epoc*1000);
         System.out.println(arr.toString());

出力は次のとおりです。

1359231233000
[1.359231233e12]

array に指数値を入れたくないのですが、実際の long 値を表示するにはどうすればよいですか?

4

2 に答える 2

3

array に指数値を入れたくないのですが、実際の long 値を表示するにはどうすればよいですか?

表示されているフォームは配列にありません。によって作成されていtoStringます。配列内の実際の値はLong、文字列ではなく です。

指数表記を使用せずにその数値の文字列形式を取得したい場合は、独自の long-to-string ルーチンを作成する必要があると思います (または、おそらく Apache commons などで見つける必要があります)。

指数形式は完全に受け入れられるJSONであることに注意してください。

于 2013-02-03T09:26:43.620 に答える
0

Long.toString()あなたが望むフォーマットであなたに番号を与えるべきです。

 long epoc = 1359231233L;
 long milli = epoc*1000;
 System.out.println(milli);
 JSONArray arr = new JSONArray();
 arr.put(Long.toString((Long)epoc*1000));
 System.out.println(arr.toString());
于 2013-02-03T09:31:33.560 に答える