我在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很新,所以任何帮助都会很棒!谢谢!
答案 0 :(得分:3)
转换为字符串后,12345678123456
号变为1.2345678123457e+015
,因此您遇到s1=s1+"."
,s1=s1+"e"
和s1=s1+"+"
的问题。