我有一个函数我打电话找到一个点的衍生物,如果我将数字硬编码到脚本中,我得到正确的答案,但如果我使用一个具有相同数字的变量,我得到一个完全错误答案。
HTML
Point<br>
<input type="text" name="point" id="point" class="form"><br>
<p id="submit" onclick="submit()" name="solve">click</p><br>
脚本
<script type="text/javascript">
function diff(f) {
return function(x) { return (f(x+.0000000001)-f(x))/.0000000001 };
}
function f(x) {
return x*x+2*x+1;
}
fprime = diff(f);
function submit() {
var point = document.getElementById("point").value;
console.log(point); //-0.5
var q = fprime(-0.5); //Will output 1
var w = fprime(point); //Will output 749999998.98
}
有关为何或如何修复的任何想法?
答案 0 :(得分:2)
问题是点是字符串,而不是数字,所以使用parseFloat()将值转换为数字或使用如下的一元运算符
var point = +document.getElementById("point").value;
演示:Fiddle