等式 returns 具有连续输入的相同值

Equation returns same value with consecutive inputs

我当前的项目需要一个曲线方程,但它不会为不同的输入返回不同的值,而是 returns 多个连续输入的相同值。

代码 (星号强调,实际代码中没有)

console.log(-21.6 + (594.6724 - -21.6)/(1 + (**67**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**68**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**69**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**70**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**71**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**72**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**73**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**74**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**75**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**76**/8.436912)^1.09424));

输出

46.87471111111112
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
34.42476363636364

如您所见,在 68-75 的输入值之间,输出没有变化。 我已经尝试了几个 IDE 以确保它不是本地问题。有人可以告诉我发生了什么事吗?

Link 到 jsfiddle:https://jsfiddle.net/ay4twrm5/

谢谢。

我猜 ^ 你的意思是求幂,除了 JavaScript 中的 ^ 不是那样使用的(它是 Bitwise XOR 运算符) ,要在 JavaScript 中做指数你需要使用 ** (不是为了强调,在实际代码中):

function f(x) {
  return -21.6 + (594.6724 - -21.6)/(1 + (x/8.436912)**1.09424);
}

console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));

或者,您可以使用 Math.pow:

function f(x) {
  return -21.6 + (594.6724 - -21.6)/(1 + Math.pow(x/8.436912, 1.09424));
}

console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));