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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Math クラス
- 乱数の生成
- 乱数の範囲とシャッフル
- Math の丸めと上限・下限