- PR -

0を表示させたくない。

1
投稿者投稿内容
セツ
会議室デビュー日: 2003/11/24
投稿数: 3
投稿日時: 2003-11-24 12:21
文字列をBigDecimalに変換した時に、例えば"12345.6789000000"という数値の"0"の部分を表示させないようにする方法はあるのでしょうか?

※初めて書き込みします。到らないところがあったらご指摘下さい。よろしくお願い致します。
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-24 12:32
「BigDecimalを文字列に変換した時」ですよね?
java doc の BigDecimal#toString を読んでください。
プリンス
ベテラン
会議室デビュー日: 2003/07/05
投稿数: 78
お住まい・勤務地: 神奈川
投稿日時: 2003-11-24 13:10

次のようなトリミングメソッドを書きます。
例外処理に依存したコードなんですが、
JDC Tech Tipsで紹介されてるのでフォーマルなんでしょう。

http://developer.java.sun.com/developer/TechTips/1999/tt0826.html#tip2


コード:
 static BigDecimal trim(BigDecimal n) {
    try {
      while (true) {
        n = n.setScale(n.scale()-1);
      }
    } catch (ArithmeticException e) {
// no more trailing zeroes so exit.
    }
    return n;
  }


セツ
会議室デビュー日: 2003/11/24
投稿数: 3
投稿日時: 2003-11-24 13:20
Keisuke様、ありがとうございます。

>java doc の BigDecimal#toString を読んでください。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/math/BigDecimal.html#toString()
ここですよね。すでに読んでるのですが・・・。


例えばこういうことなのですが、

BigDecimal bd1 = new BigDecimal("12345.6789000000");

System.out.println(bd1);

結果は、

12345.6789000000

とそのままになってしまいますが、9以降の0を表示させない方法はあるのだろうかということなのですが?
セツ
会議室デビュー日: 2003/11/24
投稿数: 3
投稿日時: 2003-11-24 13:26
>プリンス様

ありがとうございました。
すっかりうまくいきました。

>keisuke様

お世話になりました。
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-24 13:54
BigDecimal#toString より、
> 小数点以下の桁数はスケールを示すために使用されます

すなわち、「スケールを変えれば小数点以下の桁数が変わる」。
1

スキルアップ/キャリアアップ(JOB@IT)