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))

但我收到“尝试在nil值上执行算术操作"的错误。

我对Lua非常陌生,所以任何帮助都将是伟大的!谢谢!

点赞
用户6834680
用户6834680

当将数字12345678123456转换为字符串时,它变为1.2345678123457e+015,因此您在s1 = s1 +“。”s1 = s1 +“e”s1 = s1 +“+”时会出现问题。

2016-11-22 14:28:48