プログラマメモ2 - programmer no memo2

小数点3桁まで表示 2007/08/29

javaです。

小数点3桁まで表示したい場合です。
BigDecimalのsetScaleでいい感じです。

package decimal;

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {
double d = 3.789512345678;
System.out.println(new BigDecimal(d).setScale(3, BigDecimal.ROUND_HALF_UP));
}

}


結果は
3.790

それで、丸めるパラーメータはいろいろあるので、試してみるといいでしょう。
やはり、javadocは絶対必要ですね。

ROUND_CEILING
正の無限大に近づくように丸めるモードです。
ROUND_DOWN
0 に近づくように丸めるモードです。
ROUND_FLOOR
負の無限大に近づくように丸めるモードです。
ROUND_HALF_DOWN
「もっとも近い数字」 に丸めるモードです。
ROUND_HALF_EVEN
「もっとも近い数字」 に丸めるモードです。
ROUND_HALF_UP
「もっとも近い数字」に丸めるモードです。
ROUND_UNNECESSARY
要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。
ROUND_UP
0 から離れる
javadoc 1.4


javadocをローカルマシンにインストールしていないjavaプログラマがいましたら、その時点で減点です。

あとメガバイトでbyte[]を表示するためのユーティリティメソッドです。
public static double mbyte(byte[] bs) {
return new BigDecimal((bs.length / 1024.0) / 1024.0).setScale(3,
BigDecimal.ROUND_HALF_UP).doubleValue();
}


参考
小数点第2位以下で四捨五入する / Java(SE) API 逆引き辞典

: