切り上げ --- その値以上で最小の整数を返す
例1)15.4 → 16
例2)15.0 → 15
例3)-5.7 → -5 負の値は0に近い(大きい)方へ
|
切り捨て --- その値以下で最大の整数を返す
例4)15.4 → 15
例5)15.0 → 15
例6)-5.7 → -6 負の値は0から遠い(小さい)方へ
|
class CeilandFloor { public static void main( String[] args ) { double d = -5.7; double d1, d2; d1 = Math.ceil( d ); System.out.println( "小数点以下第1位で切り上げ = " + d1 ); d2 = Math.floor( d ); System.out.println( "小数点以下第1位で切り捨て = " + d2 ); } }実行結果
小数点以下第1位で切り上げ = -5.0 小数点以下第1位で切り捨て = -6.0
import java.math.BigDecimal; class CeilandFloor2 { public static void main( String[] args ) { double d = -5.7; BigDecimal b = new BigDecimal( String.valueOf(d) ); BigDecimal b1 = b.setScale( 0, BigDecimal.ROUND_CEILING ); System.out.println( "小数点以下第1位で切り上げ = " + b1 ); BigDecimal b2 = b.setScale( 0, BigDecimal.ROUND_FLOOR ); System.out.println( "小数点以下第1位で切り上げ = " + b2 ); } }実行結果
小数点以下第1位で切り上げ = -5 小数点以下第1位で切り捨て = -6BigDecimal の丸めモードには他にも種類があります。 四捨五入の例は 以前のTips(クイズの答え欄)で紹介しました。
(今回のクイズです)
上の機能をキャストを使って自作する場合、下記の下線部 (1), (2) にはそれぞれどんな式を書けばよいでしょうか。
// 変数dを小数点以下第1位で切り上げする int x1 = (1) // 変数dを小数点以下第1位で切り捨てする int x2 = (2)x1 に切り上げの結果、x2 に切り捨ての結果を代入します (ヒント:四捨五入の自作例 が参考になります)。
[ 関連記事 ] 四捨五入の自作例