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很新,所以任何帮助都会很棒!谢谢!

+1

查看http://stackoverflow.com/questions/945731/what-is-the-maximum-value-of-a-number-in-lua –

+0

在这里用Lua工作得很好5.3.3 –

+0

我使用Windows,并且我发现的最新版本是Lua 5.1 –

数量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一无所知。 –