C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のMath.Acos()メソッドとは?使い方とサンプルコードをわかりやすく解説

C#のMath.Acos()メソッドは、指定した数値を余弦(コサイン)とする角度を返すメソッドです。引数として渡す数値はdouble型であり、戻り値もdouble型で返されます。

なお、返される角度の単位はラジアンです。度数法に変換したい場合は、結果に「180 / π」を掛ける必要があります。

構文

Math.Acos()メソッドの構文は以下の通りです。

public static double Acos (double val);

引数のvalは、余弦(コサイン)の値を表します。valには -1 以上 1 以下 の値を指定する必要があります。この範囲外の値を渡した場合、戻り値はNaN(Not a Number)になります。

使用例1:特殊な値を渡した場合

まず、0、正の無限大、NaNといった特殊な値を引数に渡した場合の動作を確認してみましょう。

using System;
public class Demo {
    public static void Main(){
        double val1 = -0.0;
        double val2 = Double.PositiveInfinity;
        double val3 = Double.NaN;
        Console.WriteLine("Return value of {0} : {1}", val1, Math.Acos(val1));
        Console.WriteLine("Return value of {0} : {1}", val2, Math.Acos(val2));
        Console.WriteLine("Return value of {0} : {1}", val2, Math.Acos(val3));
    }
}

出力結果

このプログラムを実行すると、次の出力が得られます。

Return value of 0 : 1.5707963267949
Return value of ∞ : NaN
Return value of ∞ : NaN

0を渡した場合はπ/2(約1.5708)という角度が返されます。一方、無限大やNaNは余弦の取り得る範囲(-1〜1)外であるため、結果はNaNとなります。

使用例2:範囲外の値を渡した場合

続いて、有効範囲である-1〜1の外側にある値を引数に渡した場合の例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        double val1 = -30.0;
        double val2 = 30.0;
        double val3 = 0;
        Console.WriteLine("Return value of {0} : {1}", val1, Math.Acos(val1));
        Console.WriteLine("Return value of {0} : {1}", val2, Math.Acos(val2));
        Console.WriteLine("Return value of {0} : {1}", val2, Math.Acos(val3));
    }
}

出力結果

実行すると、以下の出力が得られます。

Return value of -30 : NaN
Return value of 30 : NaN
Return value of 30 : 1.5707963267949

-30や30は余弦として存在しえない値のため、どちらもNaNが返されています。一方、0を渡した場合のみ、正常に角度(π/2 ≒ 1.5707963267949)が計算されていることがわかります。

まとめ

  • Math.Acos()は、指定した余弦値に対応する角度(ラジアン)を返すメソッド
  • 引数は-1以上1以下のdouble型である必要がある
  • 範囲外の値・無限大・NaNを渡すと、戻り値はNaNになる
  • 角度を度数法で扱いたい場合は、戻り値に「180 / Math.PI」を掛けて変換する
  1. C#のMath.Floor()メソッドとは?使い方とサンプルコードを解説

    C#のMath.Floor()メソッドは、指定された数値以下で最大の整数値を返すメソッドです。正の数だけでなく負の数にも対応しており、負の数の場合はより小さい整数方向へ丸められる点が特徴です。 構文 public static decimal Floor(decimal val); public static double Floor(double val); 1つ目の構文では引数 val に decimal 型の数値を指定し、戻り値も decimal 型になります。2つ目の構文では double 型の数値を指定し、戻り値は double 型です。扱うデータの型に応じて、適切なオーバーロードを

  2. C#のMath.Exp()メソッドの使い方を徹底解説!eの累乗計算と特殊値の挙動

    C#のMath.Exp()メソッドは、自然対数の底「e」(ネイピア数、約2.71828)を指定した値で累乗した結果を返すメソッドです。数学的な指数関数の計算が必要な場面で活用されます。構文public static double Exp (double val);引数 val には、eの累乗の指数となる倍精度浮動小数点数(double型)を指定します。戻り値もdouble型です。特殊な値が渡された場合の挙動NaN(非数)またはPositiveInfinity(正の無限大)を渡した場合 → その値がそのまま返されます。NegativeInfinity(負の無限大)を渡した場合 → 0 が返されま