【问题标题】:Calculation result different in javacript and luajavascript和lua中的计算结果不同
【发布时间】:2021-05-25 11:53:23
【问题描述】:
我目前正在使用 NodeJS 创建自己的机器人,但遇到了一个问题,即我的公式与 Lua 中的计算方式不同
这是一个例子:
XP = 79878
math.floor((1/4+XP/125)^0.5-1/2)
Lua: returns 24
JavaScript: returns 639
如果有人知道如何使这个公式适用于 JavaScript,请在下面提供一个示例。
谢谢。
【问题讨论】:
标签:
javascript
node.js
math
lua
operators
【解决方案1】:
你应该这样使用:
Math.floor(Math.pow(1/4+(XP/125), 0.5)-1/2);
【解决方案2】:
Javascript 中的^ 运算符执行XOR operation,而不是将某些东西提升到权力。在最新版本的 Javascript(Node.js 8 似乎支持它,我不确定早期版本)中,您可以改用 ** 运算符;如果你需要支持早期版本,你应该使用Math.pow()。
// newer code
Math.floor((1/4 + XP/125) ** 0.5 - 1/2)
// older code
Math.floor(Math.pow(1/4 + XP/125, 0.5) - 1/2)