1

DecimalFormatクラスを使用して、数値を文字列に、またはその逆に書式設定します。

私のデータベースでは、Java double は特定の方法で表されます。たとえば、128.88 は「00012888」に格納されます。これを実現するために、「00000.00」パターンを使用して「.」を削除します。これは賢明な解決策ではありません。

DecimalFormat に小数点記号を使用しないように指示する方法はありますか? 10進数を表す文字列の整数部分と小数部分がどこにあるかを理解させることはできますか?

変換前に乗算、除算、切り捨て、または丸めを行う必要はありません。これには魔法のパターンがありますか?それとも、DecimalFormat クラスはそれほど柔軟ではありませんか?

私は Java 1.4 プラットフォームで作業しているため、正確には String.format() メソッドを使用できません。

ご協力いただきありがとうございます。

4

2 に答える 2

0

DecimalFormatそれを行うのに十分な力はありません。

次のような方法を使用できます。

double getD(String fixedWidthNumber) {
    return Double.valueOf(fixedWidthNumber.substring(0,6)+"."+fixedWidthNumber.substring(6,8));
}
于 2012-05-03T17:59:36.393 に答える
0
BigDecimal value = new BigDecimal("234.33");
DecimalFormat decFrm = new DecimalFormat("000.00");
char decSep = decFrm.getDecimalFormatSymbols().getDecimalSeparator();
String resultStr = decFrm.format(value).replace(Character.toString(decSep), "");

結果: 3423433

于 2016-03-18T10:42:22.860 に答える