【问题标题】:Dealing with big numbers in Lua在 Lua 中处理大数字
【发布时间】:2017-12-29 10:42:57
【问题描述】:

我需要在 Lua 中存储大量数字,例如数字 63680997318088143281752740767766707563546963464218564507450892460763521488675430192536461。

如果我简单地分配给一个变量,我不会得到实际的数字:

local n = 63680997318088143281752740767766707563546963464218564507450892460763521488675430192536461
print(string.format("%.0f",n)) -- prints 63680997318088143929455344863959288468423333130904105158115881995380577784972357899649024

处理大量数字的可能转折点是什么?

【问题讨论】:

  • 如果您只想存储数字,请使用字符串。
  • 感谢教授的评论。在我的情况下,这个巨大的数字是一系列求和运算的结果,所以只存储为字符串不是选项。我能够使用 BigNum 库成功地正确获取该数字。

标签: lua


【解决方案1】:

Lua 数字的精度有限,但您尝试存储的数字超出了可以存储的范围。您需要使用不同的机制来存储它们并对这些数字进行操作。

关键词是“bignum”和“任意精度数”。快速谷歌搜索返回几个纯 Lua 模块(bignumlua-nums)和一个基于 C 的模块(lmapm)。另请参阅this SO answer 了解其他选项。

【讨论】:

    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2012-03-03
    • 2010-09-12
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多