小数点3桁まで表示
2007/08/29
java
数字
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));
}
}
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();
}
return new BigDecimal((bs.length / 1024.0) / 1024.0).setScale(3,
BigDecimal.ROUND_HALF_UP).doubleValue();
}
参考
小数点第2位以下で四捨五入する / Java(SE) API 逆引き辞典
: