JavaScript 和 Lua 计算结果不同

我正在使用 NodeJS 创建自己的机器人,但是我遇到了一个问题,我的公式在 Lua 中和 JavaScript 中的计算结果不一样

以下是一个示例:

XP = 79878

math.floor((1/4+XP/125)^0.5-1/2)
Lua:返回 24
JavaScript:返回 639

如果有人知道如何在 JavaScript 中运作这个公式,请在下面提供一个例子。 谢谢。

点赞
用户12762389
用户12762389

你应该这样使用:

Math.floor(Math.pow(1/4+(XP/125), 0.5)-1/2);
2021-02-23 08:17:02
用户15265335
用户15265335

JavaScript 中的 ^ 运算符执行 XOR 操作,而不是求幂。在近代版本的 JavaScript(我不确定早期版本,Node.js 8 似乎支持)中,您可以使用 ** 运算符;如果您需要支持早期版本,则应该使用 Math.pow()

// 较新代码
Math.floor((1/4 + XP/125) ** 0.5 - 1/2)

// 较旧代码
Math.floor(Math.pow(1/4 + XP/125, 0.5) - 1/2)
2021-02-23 08:18:47