我求解 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);
}
也许是根,或者战俘?请帮我解决这个问题
最佳答案
这是简单的数学。 jQuery/Javascript 在这方面几乎没有什么贡献。
对于 jquery/Javascript 部分:
确保#a, #b,#c
当您运行代码时具有值。即
$('#a').val() = some valid Float text
在这方面你可以做的一件事就是包装你的变量 a,b,c
在函数内部。
并在单击某个按钮时调用该函数,或者仅在您确定 #a
后调用该函数, #b
, #c
有值(value)。
见下图:
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)
一个值,您的二次方程没有有理根,在这种情况下您将得到 NaN
在你的 x1 和 x2 中,因为你得到的结果不是实数而是复数。
每次都是这样Math.pow(b, 2) - (4 * a * c) < 0
,您不会得到任何实根,即您将在 x1 和 x2 中得到 NaN
看到这个fiddle
关于javascript - jQuery 二次方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16314767/