Math.exp在Javascript

时间:2018-02-08 19:28:23

标签: javascript math formula

我试图让这个公式在javascript中运行:

  

99 * exp(-0.0065 *(28 - 变量 2

我需要返回的数字是一个整数。这就是我所拥有的:

Math.round(99*(Math.exp(-0.0065*((28-variable)^2))))

如果变量是28,我会期望99的结果,但是我得到98.当变量是18时,我会期望52;我得到94.当变量是8时,我期望7但是得到86。

我的变量只会是-2到28之间的整数。

我可能把括号放在错误的地方或者其他地方,但我无法看到我做错了什么。

4 个答案:

答案 0 :(得分:3)

javascript中的

^是按位XOR运算符,而不是指数。

您正在寻找Math.pow**(ES7 - 将前者用于浏览器):

Math.round(99 * Math.exp(-0.0065 * (28-variable) ** 2))

现在让我们把它拉进一个函数并用你期望的输出进行测试:

const fn = n =>
  Math.round(99 * Math.exp(-0.0065 * (28-n) ** 2))

console.log(fn(28))
console.log(fn(18))

答案 1 :(得分:1)

Math.round(99 * Math.exp(-0.0065 * Math.pow(28-variable, 2)))

试试这个。 ^是一个按位异或。 Math.pow是您正在寻找的功能。

答案 2 :(得分:0)

使用Math.pow代替^

Math.round(99 * Math.exp(-0.0065 * Math.pow(28 - variable, 2)))

有关更多信息表达式和运算符,请检查this link

答案 3 :(得分:0)

^用于XOR操作,您需要使用Math.pow代替

Math.round(99*(Math.exp(-0.0065*(Math.pow((28-variable),2)))))