数値を指定した桁数で四捨五入したり、切り上げ、切り捨てをしたい場合は、
java.math.BigDecimalクラスを使用します。
サンプルソース
例)桁位置を指定して、四捨五入・切り捨て・切り上げを行う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import java.math.BigDecimal; public class RoundSample { public static void main(String args[]) { //元データ double val = 42.195; //元データをBigDecimal型にする BigDecimal bd = new BigDecimal(val); //四捨五入する BigDecimal bd1 = bd.setScale(0, BigDecimal.ROUND_HALF_UP); //小数第1位 BigDecimal bd2 = bd.setScale(1, BigDecimal.ROUND_HALF_UP); //小数第2位 //切り捨てする BigDecimal bd3 = bd.setScale(0, BigDecimal.ROUND_DOWN); //小数第1位 BigDecimal bd4 = bd.setScale(1, BigDecimal.ROUND_DOWN); //小数第2位 //切り上げする BigDecimal bd5 = bd.setScale(0, BigDecimal.ROUND_UP); //小数第1位 BigDecimal bd6 = bd.setScale(1, BigDecimal.ROUND_UP); //小数第2位 //画面表示 System.out.println("四捨五入(小数第1位):" + bd1.doubleValue()); System.out.println("四捨五入(小数第2位):" + bd2.doubleValue()); System.out.println("切捨て(小数第1位):" + bd3.doubleValue()); System.out.println("切捨て(小数第2位):" + bd4.doubleValue()); System.out.println("切上げ(小数第1位):" + bd5.doubleValue()); System.out.println("切上げ(小数第2位):" + bd6.doubleValue()); } } |
- (結果)
- C:\>java RoundSample 四捨五入(小数第1位):42.0 四捨五入(小数第2位):42.2 切捨て(小数第1位):42.0 切捨て(小数第2位):42.1 切上げ(小数第1位):43.0 切上げ(小数第2位):42.2
備考
- 丸めの種類は、BigDecimalの定数で指定します。定数の種類は以下記事をご覧ください。
⇒ [API] java-math-bigdecimal