目次
はじめに
C++で、「2の平方根(√2)」や「9の平方根(√9)」といった、ある数値の平方根(2乗すると元の数になる値)を計算したい場合、標準ライブラリの <cmath>
(C言語では <math.h>
) ヘッダーに用意されている std::sqrt
(square rootの略) という関数を使います。
この記事では、sqrt
関数の基本的な使い方と、注意点について解説します。
sqrt
を使ったサンプルコード
このコードは、いくつかの正の数の平方根を計算し、その結果を出力します。また、負の数を渡した場合の挙動も示します。
完成コード
#include <iostream>
#include <cmath> // sqrt 関数を使うために必要
using namespace std;
int main() {
// 1. 正の数の平方根を計算
double val1 = 9.0;
double result1 = sqrt(val1);
cout << val1 << " の平方根は " << result1 << " です。" << endl;
double val2 = 2.0;
double result2 = sqrt(val2);
cout << val2 << " の平方根は " << result2 << " です。" << endl;
// 2. 負の数の平方根を計算しようとした場合
double val3 = -4.0;
double result3 = sqrt(val3);
cout << val3 << " の平方根を計算しようとすると... " << result3 << " になります。" << endl;
return 0;
}
実行結果(環境により”nan”の表示は異なります)
9.0 の平方根は 3 です。
2.0 の平方根は 1.41421 です。
-4.0 の平方根を計算しようとすると... -nan(ind) になります。
コードの解説
sqrt(x)
- 機能: 引数
x
として渡された、負でない浮動小数点数の正の平方根を返します。 - 引数の型:
double
,float
,long double
などの浮動小数点数型を受け取ります。整数を渡した場合、自動的にdouble
型に変換されます。 - 戻り値の型: 通常は
double
型です。
【重要】負の数を渡した場合の注意点
sqrt
関数は、数学的な定義(実数の範囲)に基づいているため、引数に負の数を渡すことはできません。 負の数を渡した場合、nan
(Not a Number: 非数) という特殊な値が返され、エラー状態になります。プログラムでユーザーからの入力などを扱う場合は、sqrt
に渡す前に、値が0
以上であることを必ずチェックするようにしてください。
まとめ
今回は、C++の<cmath>
ライブラリを使って、平方根を計算するstd::sqrt
関数を解説しました。
<cmath>
ヘッダーをインクルードする。sqrt(数値)
の形で呼び出す。- 引数には負でない数を渡す必要がある。
sqrt
は、距離の計算や統計処理など、科学技術計算の様々な場面で使われる基本的な数学関数です。