【PHP8.x】sqrt関数の使い方

sqrt関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

sqrt関数は、指定された数値の平方根(二乗根)を計算する関数です。数学的な計算において、ある数値を二乗すると元の数値になる値を見つける際に利用されます。

この関数は、ただ一つの引数numを受け取ります。numは平方根を計算したい数値を指定します。通常は整数型(int)または浮動小数点数型(float)の値を渡しますが、PHPの型変換の規則に従い、他の型の値が渡された場合も可能な限り数値として解釈されます。

sqrt関数は、計算された平方根の値を浮動小数点数型(float)として返します。例えば、sqrt(9)3.0を返します。

特に注意すべき点として、数学的に実数の範囲で負の数の平方根は定義されません。そのため、もし引数numに負の数を指定した場合、sqrt関数は特別な浮動小数点値であるNaN (Not a Number) を返します。NaNは「数値ではない」ことを示す値であり、計算が有効な実数として結果を出せない場合に用いられます。

sqrt関数は、数値演算を伴う様々なプログラミングタスク、例えば幾何学的な計算や統計処理などで幅広く活用される、PHPの基本的な数学関数の一つです。PHP 8においてもその基本的な動作に変更はありません。

構文(syntax)

1<?php
2echo sqrt(25);
3?>

引数(parameters)

float $num

  • float $num: 平方根を計算したい数値。非負の数である必要があります。

戻り値(return)

float

引数に指定された数値の平方根を浮動小数点数(float)で返します。

サンプルコード

PHP sqrt関数で平方根を計算する

1<?php
2
3declare(strict_types=1);
4
5// 正の数の平方根を計算します。
6$number1 = 16;
7$squareRoot1 = sqrt($number1);
8echo "{$number1} の平方根は {$squareRoot1} です。" . PHP_EOL;
9
10// 平方根が整数にならない数の例です。
11$number2 = 2;
12$squareRoot2 = sqrt($number2);
13echo "{$number2} の平方根は {$squareRoot2} です。" . PHP_EOL;
14
15// 0の平方根を計算します。
16$number3 = 0;
17$squareRoot3 = sqrt($number3);
18echo "{$number3} の平方根は {$squareRoot3} です。" . PHP_EOL;
19
20// 負の数を引数に渡すと、結果は非数 (Not A Number) を意味する NAN になります。
21$negativeNumber = -9;
22$squareRootNaN = sqrt($negativeNumber);
23
24echo "{$negativeNumber} の平方根を計算した結果: ";
25var_dump($squareRootNaN);
26
27?>

PHPのsqrt()関数は、指定した数値の正の平方根を計算して返す関数です。

この関数は引数を1つ取ります。引数には、平方根を求めたい数値を指定します。引数に渡された数値の平方根が、戻り値として浮動小数点数(float型)で返されます。

サンプルコードでは、いくつかの例を示しています。まず、16のような正の数を引数に渡すと、その平方根である4が正しく計算されます。次に、2のように平方根が整数にならない数値を渡した場合でも、1.414... のような小数点を含む近似値が返されます。また、0の平方根は0となります。

注意すべき点は、負の数を引数に渡した場合です。-9のように負の数の平方根は実数の範囲では計算できないため、エラーにはならず、計算結果として「非数(Not A Number)」を意味する特殊な値 NAN が返されます。これは計算が不可能であることを示すための値です。

sqrt()関数は、引数に指定した数値の正の平方根を計算します。引数には整数も渡せますが、戻り値は常にfloat(浮動小数点数)型になる点に注意してください。例えばsqrt(16)の結果は4ですが、データ型はfloatです。最も重要なのは、負の数を引数に渡した場合の挙動です。この場合、エラーにはならず、計算結果が「非数 (Not A Number)」を意味するNANという特殊な値になります。NANかどうかを判定するには、is_nan()関数を使います。予期せぬ動作を防ぐため、sqrt()関数に値を渡す前に、その値が0以上であることを確認する処理を入れるとより安全なコードになります。

PHPのsqrt()で平方根を計算する

1<?php
2
3/**
4 * 与えられた数値の平方根を計算し、その結果を出力するサンプルコードです。
5 * sqrt() 関数は、引数として渡された数値の正の平方根を返します。
6 * 引数と戻り値は float 型です。
7 */
8function calculateAndDisplaySquareRoot(): void
9{
10    echo "PHPの sqrt() 関数とは?\n";
11    echo "==================================\n";
12    echo "sqrt() 関数は、指定された数値の平方根(スクエア・ルート)を計算します。\n";
13    echo "例えば、sqrt(9) は 3 を返します。\n\n";
14
15    // 例1: 正の整数の平方根を計算
16    $number1 = 9.0;
17    $squareRoot1 = sqrt($number1); // 9の平方根は3
18    echo "数値 {$number1} の平方根は: {$squareRoot1}\n";
19
20    // 例2: 小数の平方根を計算
21    $number2 = 25.0;
22    $squareRoot2 = sqrt($number2); // 25.0の平方根は5.0
23    echo "数値 {$number2} の平方根は: {$squareRoot2}\n";
24
25    // 例3: 一般的な数の平方根を計算
26    $number3 = 2.0;
27    $squareRoot3 = sqrt($number3); // 2の平方根は約1.414...
28    echo "数値 {$number3} の平方根は: {$squareRoot3}\n";
29
30    // 例4: 負の数の平方根を計算
31    // 負の数の平方根は実数ではないため、PHPのsqrt()関数は "NaN" (Not a Number) を返します。
32    $number4 = -4.0;
33    $squareRoot4 = sqrt($number4);
34    echo "数値 {$number4} の平方根は: {$squareRoot4}\n";
35    echo "(注意: 負の数の平方根は実数ではないため、NaN (Not a Number) が返されます。)\n";
36}
37
38// 関数を実行して結果を表示
39calculateAndDisplaySquareRoot();
40
41?>

このPHPサンプルコードは、組み込み関数である sqrt() の使い方を解説するものです。sqrt() 関数は、引数として渡された数値の「正の平方根」を計算し、その結果を返します。

関数に平方根を求めたい数値を渡すと、その計算結果が戻り値として得られます。引数と戻り値はどちらも浮動小数点数(float)型です。サンプルコードでは、まず 925.0 のような正の数の平方根を計算し、それぞれ 35.0 という正しい結果が得られることを示しています。

また、このコードの重要な点は、負の数を引数として渡した場合の挙動も示していることです。実数の世界では負の数の平方根は定義できないため、sqrt(-4.0) のように計算しようとすると、PHPは「数値ではない」ことを示す特別な値 NaN (Not a Number) を返します。このように、このサンプルは sqrt() 関数の基本的な使い方と注意点を学ぶ上で非常に役立ちます。

sqrt()関数を使用する際は、引数に負の数を渡すと計算結果がNAN (Not a Number) という特殊な値になる点に注意が必要です。NANは数値として扱えないため、その後の計算で意図しないエラーを引き起こす原因になります。ユーザーからの入力値などを扱う場合は、事前に値が0以上であるかを確認するか、is_nan()関数で計算結果を検証することで、より安全なプログラムになります。また、この関数の戻り値は必ず浮動小数点数(float)型です。例えばsqrt(9)の結果は、整数の3ではなく浮動小数点数の3.0となることを覚えておきましょう。

関連コンテンツ