計算の万能ツール ― Math/ System.Math クラス

C# の Math クラスは “関数電卓” のような 静的クラス です。

  • インスタンスを作らず(new しないで)そのまま Math.Abs(-3) のように呼び出します。
  • ほとんどの戻り値は double 型。必要なら decimal 版(Math.Round(decimal) など)もあります。

代表的な「定数」プロパティ

プロパティ意味
PIdouble円周率 π ≈ 3.14159…double r = 5; var area = PI * r * r;
Edoubleネイピア数 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^xExp(1) → 2.71828…
Log(x)自然対数 ln xLog(E) → 1
Log10(x)常用対数 log₁₀Log10(100) → 2
Log2(x) (.NET 5+)log₂ xLog2(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 つ

  1. Abs ― 絶対値
  2. Min / Max ― 範囲チェック
  3. Floor / Ceiling / Round ― 端数処理
  4. Pow / Sqrt ― べき乗と平方根
  5. Sin / Cos ― ゲームや物理で大活躍

ここを押さえると、座標計算・乱数生成・グラフ描画など多くの初級プロジェクトで困りません。

慣れてきたら Clamp や Hypot などモダン API も活用し、よりシンプルで読みやすいコードにしていきましょう。

訪問数 11 回, 今日の訪問数 11回

C#

Posted by hidepon