我创建了一个带有2个按钮的html页面。 一个用于一阶方程,一个用于二次方程。 我有3种形式的b和c(二次方程)
1度方程是否正确求解但我不能说二次方程式相同!!!所以这是我的代码:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Equations</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css">
</head>
<body class="bg-info">
<div class="container">
<div class="jumbotron text-center h1">
Choose the type of equation you want and press =
</div>
<div class="btn btn-block btn-success" onclick="$('.a').show();$('#c').hide()"> 1st degree</div>
<div class="btn btn-block btn-info" onclick="$('.a,#c').show();">Quadratic</div>
<input type="text" id="a" class="a b">
<input type="text" id="b" class="a b">
<input type="text" id="c">
<div class="btn btn-info" onclick="equationType()">=</div>
</div>
</body>
</html>
这是我的Javascript:
function quadratic(){
var a=$("#a").val();
var b=$("#b").val();
var c=$("#c").val();
var D=b*b - 4 * a * c;
var base = 2 * a;
var sD=Math.sqrt(D);
if (D < 0) {
alert("Can't be solved")
}
else if (D === 0){
var dx=(b*(-1)) / (2 * a);
alert("Double solution:"+dx)
}
else{
var x1=-b+sD / base;
var x2=-b-sD / base;
alert("X1: "+x1+" X2: "+x2)
}
}
问题在于,当我使用该代码来解决二次方程式时,结果与我使用头部的结果不一样
答案 0 :(得分:0)
当您从输入中获取值时,它们就是字符串。你需要它们是浮动的,这样你才能真正对它们进行操作:
var a = parseFloat($("#a").val());
var b = parseFloat($("#b").val());
var c = parseFloat($("#c").val());
答案 1 :(得分:0)
分部具有更高的优先级。你应该做
(-b+sD) / base
和
(-b-sD) / base
例如(1 + 2) / 10 == 0.3
1 + 2 / 10 == 1.2
。
答案 2 :(得分:0)
Finally division was the problem so here it is:
function quadratic(){
var a=$("#a").val();
var b=$("#b").val();
var c=$("#c").val();
var D=b*b - 4 * a * c;
var base = 2 * a;
var sD=Math.sqrt(D);
if (D < 0) {
alert("Can't be solved")
}
else if (D === 0){
var dx=(b*(-1)) / (2 * a);
alert("Double solution:"+dx)
}
else{
var x1=(-b+sD) / base;
var x2=(-b-sD) / base;
alert("X1: "+x1+" X2: "+x2)
}
}