Lua错误“尝试对字符串值执行算术”

时间:2016-11-22 14:14:22

标签: lua

我在Lua中有这个简单的脚本:

local function addDigits(n)
    n=n..""
    local s1=0

    for i=1,n:len() do
        s1=s1+n:sub(i,i)
    end
    return s1
end

如果我用小值调用它,如

addDigits(12345678123456)

表现不错。但如果我用更大的值来称呼它,就像

一样
addDigits(1234567812345678)

我收到“尝试对字符串值执行算术”。

我尝试过“toNumber”,

s1=s1+tonumber(n:sub(i,i))

但我收到“尝试对零值执行算术”。

我对Lua很新,所以任何帮助都会很棒!谢谢!

1 个答案:

答案 0 :(得分:3)

转换为字符串后,12345678123456号变为1.2345678123457e+015,因此您遇到s1=s1+"."s1=s1+"e"s1=s1+"+"的问题。