jQuery二次方程

时间:2013-05-01 08:10:34

标签: javascript jquery

我的代码解决jQuery二次方程式有什么问题?

a = parseFloat($('#a').val());
b = parseFloat($('#b').val());
c = parseFloat($('#c').val());
root = Math.sqrt(Math.pow(b, 2) - (4 * a * c));
x1 = (-b + root) / 2 * a;
x2 = (-b - root) / 2 * a;

function validateForm(){
            $('#result1').fadeIn('slow');
            $('#result2').fadeIn('slow');
            $('#result1').html('First ans equal' + x1);
            $('#result2').html('Second ans equal' + x2);
}

也许它的根源还是战俘?请帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

简单的数学。 jQuery / Javascript在这方面做的很少。

对于jquery / Javascript部分

确保#a, #b,#c在运行代码时具有值。即。

 $('#a').val() = some valid Float text

在这方面你可以做的一件事是将变量a,b,c包装在一个函数中。

并在点击某个按钮时调用该功能,或者只有在您确定#a#b#c有价值后才能调用该功能。

见下图:

var x1,x2;
function calculate(){

     a = parseFloat($('#a').val());
     b = parseFloat($('#b').val());
     c = parseFloat($('#c').val());

     root = Math.sqrt(Math.pow(b, 2) - (4 * a * c));

     x1 = (-b + root) / 2 * a;
     x2 = (-b - root) / 2 * a;
}

$('#validate').on("click",function(){
     calculate();
    $('.result').html('').append('first answer'+x1).append('second answer'+x2);
}); 

数学部分

只要您的二次方程具有合理的根,它就能正常工作。即如果你给你的 coefficients(a,b,c)一个值,即你的二次方程没有理性根,在这种情况下,你将在x1和x2中得到NaN,因为你得到的结果不是实数而是复数。 / p>

所以每次Math.pow(b, 2) - (4 * a * c) < 0,你都不会得到任何真正的根,即你将在x1和x2中获得NaN

请参阅此fiddle