Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Ruby辞典

  1. トップページ
  2. Ruby辞典
  3. Math.sqrt / log / sin / cos / Math::PI

Math.sqrt / log / sin / cos / Math::PI

Mathモジュールが提供する数学関数と定数です。平方根・対数・三角関数などの計算に使用します。

構文
# 平方根を求めます。
Math.sqrt(数値)

# 自然対数・常用対数・2を底とする対数を求めます。
Math.log(数値)       # 自然対数(底はe)
Math.log10(数値)     # 常用対数(底は10)
Math.log2(数値)      # 2を底とする対数

# 三角関数(引数はラジアン)。
Math.sin(ラジアン)
Math.cos(ラジアン)
Math.tan(ラジアン)

# 逆三角関数(戻り値はラジアン)。
Math.asin(値)
Math.acos(値)
Math.atan(値)
Math.atan2(y, x)  # 2引数版(象限も考慮)

# 数学定数。
Math::PI  # 円周率 π(3.141592653589793)
Math::E   # 自然対数の底 e(2.718281828459045)
メソッド一覧
メソッド / 定数概要
Math.sqrt(x)xの平方根を浮動小数点数で返します。xが負の場合は例外が発生します。
Math.log(x)xの自然対数(底e)を返します。xは正の数である必要があります。
Math.log10(x)xの常用対数(底10)を返します。
Math.log2(x)xの2を底とする対数を返します。
Math.sin(x)xラジアンのサイン(正弦)を返します。
Math.cos(x)xラジアンのコサイン(余弦)を返します。
Math.tan(x)xラジアンのタンジェント(正接)を返します。
Math.atan2(y, x)点(x, y)の偏角(ラジアン)を返します。象限を正しく判定できます。
Math::PI円周率πの近似値(3.141592653589793)です。
Math::E自然対数の底eの近似値(2.718281828459045)です。
サンプルコード
# sqrt: 平方根を計算します。
puts Math.sqrt(9)    # 3.0
puts Math.sqrt(2)    # 1.4142135623730951

# log: 対数を計算します。
puts Math.log(Math::E)   # 1.0(自然対数)
puts Math.log10(100)     # 2.0(10の2乗 = 100)
puts Math.log2(8)        # 3.0(2の3乗 = 8)

# 三角関数: 引数はラジアンです。
# 度数をラジアンに変換するには π/180 を掛けます。
deg_to_rad = Math::PI / 180

puts Math.sin(90 * deg_to_rad).round(10)   # 1.0(sin 90°)
puts Math.cos(0).round(10)                 # 1.0(cos 0°)
puts Math.sin(30 * deg_to_rad).round(10)   # 0.5(sin 30°)

# 円の面積を計算します(半径5)。
半径 = 5
面積 = Math::PI * 半径 ** 2
puts "面積: #{面積.round(2)}"  # 面積: 78.54

# 直角三角形の斜辺を求めます(ピタゴラスの定理)。
a = 3
b = 4
斜辺 = Math.sqrt(a**2 + b**2)
puts "斜辺: #{斜辺}"  # 斜辺: 5.0
概要

『Math』はRubyの組み込みモジュールで、数学的な計算をサポートする関数と定数を提供しています。すべての関数は浮動小数点数を返します。

三角関数の引数と戻り値はすべてラジアンです。度数法(°)で計算したい場合は『度数 * Math::PI / 180』でラジアンに変換してから渡してください。

負の数に対して『Math.sqrt』を呼び出すと『Math::DomainError』が発生します。複素数の平方根が必要な場合は『Complex』クラスを使用してください(例: 『Complex(-1, 0).sqrt』)。

数値の丸め処理については『数値.abs / round / ceil / floor』を、整数の反復処理については『数値.times / upto / downto』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。