使用海洛尼定理在我的三角面积计算器中输出错误



我很确定我的代码正确,我很确定我的公式是正确的,但由于某种原因,我得到的结果是 7496238.570769714,而它应该是 14.6969 .这意味着一定有什么问题...亲爱的代码大师,我错过了什么?

我搜索了论坛,发现人们在做类似的任务,但问题不同,我正在使用 Mozilla 来检查我的结果。

var answer = 0;
var areaFromLength = function() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var c = document.getElementById("c").value;
var x = (a + b + c) / 2;
var answer = Math.sqrt(x * ((x - a) * (x - b) * (x - c)));
document.getElementById("result").innerHTML = "<p>The area of the triangle is " + answer + "</p>";
return false;
};
<form id="tAreas">
<p><input type="number" id="a" name="a" value="5"> length of triangle side 1</p>
<p><input type="number" id="b" name="b" value="6"> length of triangle side 2</p>
<p><input type="number" id="c" name="c" value="7"> length of triangle side 2</p>
<button onclick="return areaFromLength()">Do the maths!</button>
</form>
<div id="result">
<p>Your answer will appear here</p>
</div>

做数学运算时,你的数字被视为字符串(5+6+7=567)。使用parseFloat

var answer = 0;
window.areaFromLength = function() {
var a = parseFloat(document.getElementById("a").value);
var b = parseFloat(document.getElementById("b").value);
var c = parseFloat(document.getElementById("c").value);
var x = (a + b + c) / 2;
var answer = Math.sqrt(x * ((x - a) * (x - b) * (x - c)));
document.getElementById("result").innerHTML = "<p>The area of the triangle is " + answer + "</p>";
return false;
};
<form id="tAreas">
<p><input type="number" id="a" name="a" value="5"> length of triangle side 1</p>
<p><input type="number" id="b" name="b" value="6"> length of triangle side 2</p>
<p><input type="number" id="c" name="c" value="7"> length of triangle side 2</p>
<button onclick="return areaFromLength()">Do the maths!</button>
</form>
<div id="result">
<p>Your answer will appear here</p>
</div>

最新更新