代码之家  ›  专栏  ›  技术社区  ›  rsc user10692571

在Lua中处理大数字

lua
  •  6
  • rsc user10692571  · 技术社区  · 9 年前

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

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

    在处理大量数据时,可能的转折点是什么?

    1 回复  |  直到 9 年前
        1
  •  8
  •   Paul Kulchenko    9 年前

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

    bignum lua-nums )和一个基于C的( lmapm this SO answer 其他选项。