【C++】std::sqrt で平方根(ルート)を計算する方法

目次

はじめに

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は、距離の計算や統計処理など、科学技術計算の様々な場面で使われる基本的な数学関数です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次