2012-05-03 8 views
1

DecimalFormatクラスを使用して数値を文字列にフォーマットします。逆も同様です。DecimalFormat - 小数点記号なし

私のデータベースでは、Javaの倍音は特定の方法で表現されています。たとえば、128.88は「00012888」です。これを達成するために、私は "00000.00"パターンを使用し、 "。"フォーマット後の小数点区切り記号ですが、これはスマートな解決策ではありません。

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

私は、変換する前に掛け算、分割、切り捨て、または丸めをする必要はありません。 これには魔法のパターンがありますか?または、DecimalFormatクラスは柔軟性がありませんか?

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

ありがとうございました。

+0

あなたは 'DECIMALS(9、2)'にデータベース列を変更することができませんか?まだポイントなしで保存され、より正常になります。さらに、BigDecimalは非常に扱いにくいですが、doubleより優れたソリューションです。正しい列定義を持つビューを作成し、単にgetDoubleまたはgetBigDecimalを作成することができます。 –

+0

、不幸なことに、しかしBigDecimalはかなり良い解決策であるようです。ありがとう! – mishka

答えて

0

DecimalFormatはそうするには十分ではありません。

あなたは、このようなメソッドを使用することができます。

double getD(String fixedWidthNumber) { 
    return Double.valueOf(fixedWidthNumber.substring(0,6)+"."+fixedWidthNumber.substring(6,8)); 
} 
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

関連する問題