0Pricing
Java Academy · レッスン

Math の丸めと上限・下限

floor、ceil、round、min、max です。

「Math の丸めと上限・下限」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

丸めと範囲制限

このレッスンでは、Mathの丸め関連メソッド(floor、ceil、round)と、minおよびmaxを使った値のクランプに重点を置きます。

Math.floor

Math.floorは最も近い整数値まで切り下げ、doubleを返します。Math.floor(2.9)は2.0になります。

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.floor(2.9));
        System.out.println(Math.floor(-2.1));
    }
}

Math.ceil

Math.ceilは切り上げます。Math.ceil(2.1)は3.0になり、Math.ceil(-2.9)は-2.0になります。

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.ceil(2.1));
        System.out.println(Math.ceil(-2.9));
    }
}

Math.round

Math.roundは最も近い整数に丸めます。ちょうど中間の値(.5)は切り上げます。doubleを引数に取る場合はlongを返します。

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.round(2.4));
        System.out.println(Math.round(2.5));
        System.out.println(Math.round(-2.5));
    }
}

負の数の丸めで注意する点

負の数では、floorはより負の方向に進み、ceilは0に近づきます。Math.round(-2.5)は-2です。これは、0.5を正の無限大の方向に丸めるためです。

キャストによる切り捨て

doubleをintにキャストすると、単純に小数部分が削除され、0の方向に切り捨てられます。これは、負の数に対するfloorとは異なります。

public class Main {
    public static void main(String[] args) {
        System.out.println((int) 2.9);
        System.out.println((int) -2.9);
        System.out.println((int) Math.floor(-2.9));
    }
}

範囲制限としての最小値と最大値

Math.maxとMath.minを組み合わせると、値を範囲内にクランプできます。Math.max(0, Math.min(100, v))を使うと、vは0から100の間に収まります。

public class Main {
    public static void main(String[] args) {
        int v = 130;
        int clamped = Math.max(0, Math.min(100, v));
        System.out.println(clamped);
    }
}

Math.clamp

最新のJavaでは、Math.clamp(value, min, max)が追加され、値のクランプを直接行えるため、min/maxを入れ子にして呼び出すよりも読みやすくなっています。

public class Main {
    public static void main(String[] args) {
        System.out.println(Math.clamp(130, 0, 100));
        System.out.println(Math.clamp(-5, 0, 100));
        System.out.println(Math.clamp(50, 0, 100));
    }
}

floorDivとfloorMod

整数除算はゼロ方向に切り捨てられるため、負の数では意外な結果になることがあります。Math.floorDivとMath.floorModは負の無限大方向に丸めるため、一貫した結果が得られます。

public class Main {
    public static void main(String[] args) {
        System.out.println(-7 / 2);
        System.out.println(Math.floorDiv(-7, 2));
        System.out.println(Math.floorMod(-7, 2));
    }
}

小数点以下の桁数への丸め

N桁に丸めるには、いったん値を拡大してから丸め、その後で縮小します。たとえば、Math.round(x * 100.0) / 100.0を使うと、xを小数点以下2桁に丸められます。

public class Main {
    public static void main(String[] args) {
        double price = 3.14159;
        double rounded = Math.round(price * 100.0) / 100.0;
        System.out.println(rounded);
    }
}

丸め方法の選び方

常に下方向に丸めるにはfloor、常に上方向に丸めるにはceil、最も近い値に丸めるにはround、切り捨てるにはキャストを使います。範囲内に値を収める場合は、Math.clampを優先してください。

理解度チェック

丸めについての理解度を確認しましょう。

まとめ

丸めと値の制限について学びました。

  • floorは下方向に丸め、ceilは上方向に丸め、roundは最も近い値に丸めます(同じ距離の場合は上方向)。
  • キャストはゼロ方向に切り捨てます。
  • Math.clamp(またはmin/maxの入れ子)を使うと、値を範囲内に収められます。
  • floorDivとfloorModは負の数を一貫して処理します。

よくある質問

「Math の丸めと上限・下限」レッスンは無料ですか?

はい。「Math の丸めと上限・下限」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「Math の丸めと上限・下限」で何を学びますか?

floor、ceil、round、min、max です。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Math の丸めと上限・下限」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Math クラス
  2. 乱数の生成
  3. 乱数の範囲とシャッフル
  4. Math の丸めと上限・下限
← Java Academyに戻る