[英]I need help for a formula
var a = document.forms[0].elements[0].value;
var b = document.forms[0].elements[1].value;
var c = document.forms[0].elements[2].value;
var d = document.forms[0].elements[3].value;
var Xp = document.forms[0].elements[4].value;
var Yp = document.forms[0].elements[5].value;
document.forms[0].elements[7].value = a/c;
document.forms[0].elements[8].value = (b*c-a*d)/(c*c);
document.forms[0].elements[9].value = c;
document.forms[0].elements[10].value = d;
document.forms[0].elements[11].value = Yp-(a/c*Xp)-((b*c-a*d)/(c*c)*(Math.log(Math.abs(c*Xp+d))));`
元素11应该为-1,但我得到6.20。 我知道错误是从Math.log到; Math.log是自然对数吗? 因为我必须这样做
请参阅Math.log的文档: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log
要获得进一步的帮助,您应该咨询您的数学老师或知道算法的人;-P
也许你应该看到的部分: ((b*ca*d)/(c*c)*(Math.log(Math.abs(c*Xp+d))))
马爷您希望有大括号像做(x/(z*y))
或((x*y)/z)
。
编辑:使用表单输入数据工作代码
<!DOCTYPE html>
<html>
<body>
<script>
function foo (form)
{
var a = form.elements[0].value
var b = form.elements[1].value;
var c = form.elements[2].value;
var d = form.elements[3].value;
var Xp = form.elements[4].value;
var Yp = form.elements[5].value;
var z = ((c*1)*(Xp)+(d*1));
var K = Yp-(a/c*Xp)-((b*c-a*d)/(c*c)*(Math.log(Math.abs(z))));
alert(K);
}
</script>
<form id="frm1" action="" method = "Get">
a: <input type="number" name="a" value="1"><br>
b: <input type="number" name="b" value="-3"><br>
c: <input type="number" name="c" value="1"><br>
d: <input type="number" name="d" value="4"><br>
Xp: <input type="number" name="Xp" value="1"><br>
Yp: <input type="number" name="Yp" value="-11.2661"><br>
<input type="button" id = "Submit" value="Read" onClick="foo(this.form)"/>
</form>
</body>
</html>
问题在于(c * Xp + d)。 您看到而不是求值(1 + 4)= 5,而是将cd和Xp视为字符串,并得出(1 + 4)= 14表示将一个字符串添加到另一个字符串。 使用z =((c * 1))*(Xp)+(d * 1))必须以某种方式将值强制转换为两倍,以便它们求值为5的右数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.