Thinkers'Studio
JavaとC言語の自習ツール
小数点以下第1位で四捨五入するプログラム例( Java版 )

 四捨五入の処理を自作する場合のサンプルです。ここでは、キャストを使います。

四捨五入の方法

 ・小数点以下1桁目を四捨五入するなら、元の値に 0.5 を足してから、小数点以下を切り捨てます。
    例1)15.4   15.4+0.5は15.9 → 小数点以下を切り捨て → 15
    例2)15.5   15.5+0.5は16.0 → 小数点以下を切り捨て → 16
 ・整数型に切り捨てるには、(int) を前に付けて int型にキャスト(強制的型変換)します。
    int x1 = (int)( 15.4 + 0.5 );  // x1は 15となる [OK!]
    int x2 = (int)( 15.5 + 0.5 );  // x2は 16となる [OK!]
 ・負の数だとどうでしょう? -15.4 を小数点以下第1位で四捨五入すると -15ですが ・・・
    int x3 = (int)( -15.4 + 0.5 ); // x3は-14となる [NG!]
 ・正なら 0.5 を足し、負なら 0.5 を引く必要がありますね。 たとえば三項演算子 ? : を使って次のようにします。
    int x = (int)( d < 0.0 ? d-0.5 : d+0.5 );

【 小数点以下第1位で四捨五入するプログラム例(Java版)】
class MyRound {
    public static void main( String[] args ) {
        double d = -15.5;

        int x = (int)( d < 0.0 ? d-0.5 : d+0.5 );
        System.out.println( "小数点以下第1位で四捨五入 = " + x );
    }
}

(今回のクイズです)
 Java の機能は非常に豊富です。 使いたいメソッドを探すのに時間がかかるので、自作するケースも少なくありません。
 さて、今回の例では java.math.BigDecimal クラスの setScale が活用できます。そのメソッドを使って書いてみましょう。
   (答えは、次回の Java の Tips で ・・・)

[ 関連記事 ] 切り上げ/切り捨て

前回のクイズの答え: 繰り返し終了後の i は 7 (前回の問題を見る
繰り返しを終わるのは、mangos配列の要素すべてについて処理したか、break で抜けたときです。 前回の例では、7つ目の要素 301g のマンゴーを箱詰めしたところで break したので、i は 7 です。