Lua的错误“试图对字符串值执行算术”
问题描述:
我在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很新,所以任何帮助都会很棒!谢谢!
答
数量12345678123456
变得1.2345678123457e+015
当被转换为字符串,所以你有问题,s1=s1+"."
,s1=s1+"e"
和s1=s1+"+"
。
+0
我尝试在这里使用这个库:http://oss.digirati.com.br/luabignum/bn/,但我使用redis-cli,并且我不能使用require。所以,我只是在我的目录中添加了BigNum.lua,但仍然无法使用该库。任何建议? –
+0
“如何在redis中安装Lua软件包”是一个单独的问题。对不起,我对redis一无所知。 –
查看http://stackoverflow.com/questions/945731/what-is-the-maximum-value-of-a-number-in-lua –
在这里用Lua工作得很好5.3.3 –
我使用Windows,并且我发现的最新版本是Lua 5.1 –