我试图让这个公式在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之间的整数。
我可能把括号放在错误的地方或者其他地方,但我无法看到我做错了什么。
答案 0 :(得分:3)
^
是按位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)))))