Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

数値の桁数制限について

String saidaiByte = "#.##";
String kensaData = "451.265";                                    
DecimalFormat df00 = new DecimalFormat(saidaiByte);

String s00 = df00.format(Float.parseFloat(w_kensaData ));


この場合、s00の値をログに出すと451.27と出力されます。

少数部はきちんと2桁になって表示されているのですが、自分の理想としては整数部分も1桁になって表示されてほしいのですが・・・。

DecimalFormatではできないのでしょうか?
よろしくお願いします!

5

回答

7273

閲覧

5件の回答

評価

0

http://java.sun.com/javase/ja/6/docs/ja/api/java/text/DecimalFormat.html#setMaximumIntegerDigits(int)

評価

0

すみません。
質問の仕方が悪かったですね。

setMaximumIntegerDigitsで桁数指定をして制限する方法はわかっていたのですが、そうではなく"#.##"←この部分の表現が可変だった場合に、"#.##"だったら1.26、"##.##"だったら51.26という風に表現する事は可能でしょうか?
与えられる引数が#で表現されている部分なもので!

もしできないのであれば、#で渡された引数を小数点で分割して整数部の桁数を取得してsetMaximumIntegerDigitsにセットという方法しかないんでしょうか?

説明が下手で申し訳ありません。
よろしくお願いします。

評価

0

#はそういうものだと覚えるしかない。
分割せんでも、indexOf()するだけで良いと思うが。

評価

0

そうですよね!
やはりそうするしかないんですねぇ。

ありがとうございます。
indexOf使ってやってみようと思います。

評価

0

そもそも、
数値フォーマットは整数部の桁を区切ったり、小数部の桁を丸めたりするためのもの。


String#formatを利用すれば、最大桁数・小数桁数を制御できる。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。