質問: 不必要な10進数の0を使わずに、浮動小数点数をstringにうまくフォーマットする方法は? 64ビットdoubleは整数+/- 2を表すことができます53 まさにこの事実を考えると、私の最大の整数は符号なし32ビットなので、私はすべての型に対して単一の型としてdouble型を使用することを選択します。しかし今、私はこれらの疑似整数を表示しなければなりません、しかし問題はそれらが実際の倍精度と混在しているということです。では、どのようにこれらのdoubleをjavaでうまく印刷するのでしょうか。私はstring.format("%f", value)を試してみましたが、小さい値の場合は末尾のゼロがたくさん出ます。これは%fの出力例です。 232.00000000 0.18000000000 1237875192.0 4.5800000000 0.00000000 1.23450000 私が欲しいのは: 232 0.18 1237875192 4.58 0 1.2345 確かに私はそれらのゼロを整えるための関数を書くことができますが、それは文字列操作によるパフォーマンスの損失の多くです。他のフォーマットコードでもっとうまくいくことができますか?edittom e.とjeremy s.の答えは、どちらも小数点以下第2位まで任意に丸められるため、受け入れられません。答える前に問題を理解してください。編集2string.format(format, args...)は ロケール依存 であることに注意してください(下記の回答を参照)。
回答: 私の2セント:if(n % 1 == 0) { return string.format(locale.us, "%.0f", n)); } else { return string.format(locale.us, "%.1f", n)); }