計算の万能ツール ― Math/ System.Math クラス
C# の Math クラスは “関数電卓” のような 静的クラス です。
- インスタンスを作らず(new しないで)そのまま Math.Abs(-3) のように呼び出します。
- ほとんどの戻り値は double 型。必要なら decimal 版(Math.Round(decimal) など)もあります。
目次
代表的な「定数」プロパティ
プロパティ | 型 | 意味 | 例 |
---|---|---|---|
PI | double | 円周率 π ≈ 3.14159… | double r = 5; var area = PI * r * r; |
E | double | ネイピア数 e ≈ 2.71828… | var exp1 = Math.Exp(1); // e |
Tau (.NET 6+) | double | 円の一周角 2π | var rad = Math.Tau; |
暗記は不要ですが、半径や角度を扱う場面で「手打ちの 3.14」より安全&読みやすくなります。
基本操作メソッド(抜粋)
1. 絶対値・大小・端数処理
メソッド | 概要 | 例 |
---|---|---|
Abs(x) | 絶対値 | Math.Abs(-7) → 7 |
Min(a,b) / Max(a,b) | 小さい / 大きい方 | Max(3,10) → 10 |
Clamp(v, min, max) (.NET 7+) | 範囲に収める | Clamp(120, 0, 100) → 100 |
Floor(x) | 小数点以下切り捨て | Floor(2.9) → 2 |
Ceiling(x) | 小数点以上切り上げ | Ceiling(2.1) → 3 |
Round(x, digits?) | 四捨五入(桁指定可) | Round(1.2345, 2) → 1.23 |
Truncate(x) | 0 方向へ切り捨て | Truncate(-2.9) → -2 |
2. 乗算・冪・平方根
メソッド | 概要 | 例 |
---|---|---|
Pow(x, y) | x^y(べき乗) | Pow(2, 10) → 1024 |
Sqrt(x) | √x ― 平方根 | Sqrt(49) → 7 |
Cbrt(x) (.NET 7+) | ³√x ― 立方根 | Cbrt(27) → 3 |
3. 指数・対数
メソッド | 概要 | 例 |
---|---|---|
Exp(x) | e^x | Exp(1) → 2.71828… |
Log(x) | 自然対数 ln x | Log(E) → 1 |
Log10(x) | 常用対数 log₁₀ | Log10(100) → 2 |
Log2(x) (.NET 5+) | log₂ x | Log2(8) → 3 |
4. 三角関数
メソッド | 概要 (引数はラジアン) | 例 |
---|---|---|
Sin(x) / Cos(x) / Tan(x) | 正弦・余弦・正接 | Sin(PI/2) → 1 |
Asin(x) / Acos(x) / Atan(x) | 逆三角関数 | Atan(1) → π/4 |
Atan2(y, x) | (x,y) から角度 | Atan2(1,1) → π/4 |
Hypot(x, y) (.NET 5+) | √(x²+y²) ― 斜辺長 | Hypot(3,4) → 5 |
よくある “つまずきポイント” とコツ
シーン | ありがちな誤解 | コツ |
---|---|---|
角度 | Sin(90) を書いて「0.893…」?? | 度ではなくラジアン:90°→ PI/2 |
丸め誤差 | 0.1 + 0.2 が 0.3 にならない | double は2 進数小数なので微小誤差が出る。比較は Math.Abs(a-b) < 1e-9 などの許容幅で |
Round の規則 | 5 で必ず繰り上がると思ったら… | 既定は「銀行丸め」。明示的に MidpointRounding.AwayFromZero を渡せば普通の四捨五入 |
まず覚えたい 5 つ
- Abs ― 絶対値
- Min / Max ― 範囲チェック
- Floor / Ceiling / Round ― 端数処理
- Pow / Sqrt ― べき乗と平方根
- Sin / Cos ― ゲームや物理で大活躍
ここを押さえると、座標計算・乱数生成・グラフ描画など多くの初級プロジェクトで困りません。
慣れてきたら Clamp や Hypot などモダン API も活用し、よりシンプルで読みやすいコードにしていきましょう。
訪問数 11 回, 今日の訪問数 11回
ディスカッション
コメント一覧
まだ、コメントがありません