HOME > 四捨五入・切上げ・切捨てをする
四捨五入・切上げ・切捨てをする
数値を指定した桁数で四捨五入したり、切り上げ、切り捨てをしたい場合は、
java.math.BigDecimalクラスを使用します。
サンプルソースコード
- 四捨五入、切り捨て、切り上げサンプル
-
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
丸めの種類
四捨五入や切り捨て、切り上げ含めて以下のような丸め方法が用意されています。
丸め方法 | 説明 |
---|---|
ROUND_CEILING | 正の無限大に近づくように丸めるモード (例)42.1→43.0、-42.1→-42.0 |
ROUND_DOWN | ゼロに近づくように丸めるモード (例)42.1→42.0、-42.1→-42.0 |
ROUND_FLOOR | 負の無限大に近づくように丸めるモード (例)42.1→42.0、-42.1→-43.0 |
ROUND_HALF_DOWN | 五捨六入する (例)42.5→42.0、42.6→43.0、 -42.5→-42.0、-42.6→-43.0 |
ROUND_HALF_EVEN | 末尾が偶数のほうに丸める (例)42.4→42.0、42.5→42.0、 43.4→43.0、43.5→44.0、 -42.4→-42.0、-42.5→-42.0、 -43.4→-43.0、-43.5→-44.0 |
ROUND_HALF_UP | 四捨五入する (例)42.4→42.0、42.5→43.0、 -42.4→-42.0、-42.5→-43.0 |
ROUND_UNNECESSARY | 丸め不要 |
ROUND_UP | 0 から離れるように丸めるモード (例)42.1→43.0、-42.1→-43.0 |
例はすべて小数第1位を対象としています。