ホームページ >Java >&#&チュートリアル >Java で Double を正確なフォーマットで出力し、不必要な末尾のゼロを削除するにはどうすればよいですか?
範囲内の整数を正確に表現できる 64 ビット double の機能を考慮すると、混合整数と整数を出力するときに問題が発生します。二重値。 String.format("%f") は厳密な書式設定を提供しますが、小さな値には不要な末尾のゼロが追加されます。
解決策の模索:
目標は出力することです。実際の double の高精度を維持しながら、10 進数のゼロを含まない double として整数値を格納します。たとえば、これらを考慮すると、入力:
望ましい出力は:
効率的書式設定:
書式設定を最適化するには、整数値を 64 ビット double として正確に表現できるという事実を利用できます。次の Java コード スニペットは、パフォーマンス重視の文字列操作に頼らずにこれを実現します。
public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
説明:
結果:
入力例に適用すると、出力は目的の形式と一致します:
232 0.18 1237875192 4.58 0 1.2345
以上がJava で Double を正確なフォーマットで出力し、不必要な末尾のゼロを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。