php中的二次方程求解器

时间:2015-04-16 12:39:52

标签: php formula calculator equation quadratic

我试图在php中制作二次方程求解器:

的index.html:

<html>
    <body>
        <form action="findx.php" method="post">
            Find solution for ax^2 + bx + c<br>
            a: <input type="text" name="a"><br>
            b: <input type="text" name="b"><br>
            c: <input type="text" name="c"><br>
            <input type="submit" value="Find x!">
        </form>   
    </body>
</html>

findx.php:

<?php
    if(isset($_POST['a'])){ $a = $_POST['a']; } 
    if(isset($_POST['b'])){ $b = $_POST['b']; } 
    if(isset($_POST['c'])){ $c = $_POST['c']; }

    $d = $b*$b - 4*$a*$c;
    echo $d;

    if($d < 0) {
        echo "The equation has no real solutions!";
    } elseif($d = 0) {
        echo "x = ";
        echo (-$b / 2*$a);
    } else  {
        echo "x1 = ";
        echo ((-$b + sqrt($d)) / (2*$a));
        echo "<br>";
        echo "x2 = ";
        echo ((-$b - sqrt($d)) / (2*$a));
    }
?>

问题是它返回错误的答案(d是对的,x1和x2不是)似乎sqrt()返回零或者其他东西。

1 个答案:

答案 0 :(得分:3)

这一行有一个错字:

elseif($d = 0)

将值<{1}} 分配给0而不是比较它。这意味着您始终在$d块中评估sqrt(0),即0。

应该是:

else