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());
}
}
Output
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位を対象としています。
댓글 없음:
댓글 쓰기