現在の位置: ホーム> 最新記事一覧> PHPのSQRT機能は、0と負の数を正しく処理する方法をどのように処理しますか?

PHPのSQRT機能は、0と負の数を正しく処理する方法をどのように処理しますか?

gitbox 2025-09-11

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// これは記事の前には無関係ですPHPコードの例</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"このコードは、記事の内容とは何の関係もありません。"</span></span><span>;
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

PHPでは、平方根関数SQRT()を使用して、数の平方根を計算します。使用は非常に簡単ですが、0や負の数などの特別な値を扱う場合、ランタイムエラーや予期しない結果を避けるために、その動作と潜在的な問題を理解する必要があります。

1。0の処理

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 出力 0</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

PHPでは、 SQRT(0)が0を返します。これは、0の平方根が0であるため、数学的論理と完全に一致しています。この状況は安全で、警告やエラーが生成されません。

2。陰性数の治療

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = -</span><span><span class="hljs-number">4</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

負の数でs​​qrt()を使用しようとすると、 PHP警告が発生します。

 <span><span><span class="hljs-built_in">Warning</span></span><span>: sqrt() expects parameter </span><span><span class="hljs-number">1</span></span><span> </span><span><span class="hljs-keyword">to</span></span><span> be </span><span><span class="hljs-type">float</span></span><span>, negative given
</span></span>

NAN(数ではない)を返します。これは、実際の範囲では、負の数には正方形の根がないためです。負の数の平方根に対処する必要がある場合は、複雑な数の概念を導入する必要があります。

複雑なクラスライブラリを使用して、複数の数字を処理します

PHP独自のsqrt()は複数形を直接処理することはできませんが、一部の拡張機能またはカスタム関数を通じて実装できます。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">sqrtComplex</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$number</span></span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$number</span></span><span> &gt;= </span><span><span class="hljs-number">0</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>)) . </span><span><span class="hljs-string">'i'</span></span><span>;
    }
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrtComplex</span></span><span>(-</span><span><span class="hljs-number">9</span></span><span>); </span><span><span class="hljs-comment">// 出力 3i</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ここでは、虚数の平方根を虚数形として表します。ここでは、想像上の単位を表します

3.安全な使用提案

  1. 入力値を確認します。警告を避けるために、sqrt()を呼び出す前に負の数字であるかどうかを判断します。

  2. 0:0の処理は安全で、直接計算するだけです。

  3. 複数のケースを検討してください。プログラムが負の平方根を扱う必要がある場合は、カスタム関数またはサードパーティライブラリを使用して複数形を表すことができます。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = -</span><span><span class="hljs-number">16</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$number</span></span><span> &lt; </span><span><span class="hljs-number">0</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根は想像上の数です: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">sqrtComplex</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根は本物です: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

これにより、プログラムが負の入力による警告やエラーを引き起こさず、結果を正しく返すことができます。