我的代码是:
$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;
?>