PHP代码正在返回";x=NAN"


PHP code is returning "x=NAN"

我的代码是:

$a = $_GET["valA"];
$b = $_GET["valB"];
$c = $_GET["valC"];
$d = pow($b,2) - 4 * $a * $c;
$e = sqrt($d);
$f = $e - $b;
$g = 2 * $a;
$h = $f / $g;
echo "x = $h";

它正在回归:

x = NAN

请指出我的错误。

问题与$e = sqrt($d); 有关

每当$d给出负值时,sqrt($d)返回NAN。

示例

echo $e = sqrt(-4);  
          returns NAN

echo $e = sqrt(4);
          returns 2

NAN简单地表示不是数字。您从URL中提取的值可能是字符串,这将导致此问题。

此外,我认为如果你取一个负数的平方根,这个问题可能会发生。

你可以用这样的东西来解决

<?php
$a = 10;
$b = 20;
$c = 30;
$d = pow($b,2) - 4 * $a * $c;
if($d < 0){
        $d *= -1;
    }
$e = sqrt($d);
$f = $e - $b;
$g = 2 * $a;
$h = $f / $g;
?>