Lua 错误“尝试对字符串值执行算术运算”
Posted
技术标签:
【中文标题】Lua 错误“尝试对字符串值执行算术运算”【英文标题】:Lua error “attempt to perform arithmetic on a string value" 【发布时间】:2017-04-06 06:21:35 【问题描述】:我在 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 很陌生,所以任何帮助都会很棒!谢谢!
【问题讨论】:
见***.com/questions/945731/… 在 Lua 5.3.3 上运行良好 我用的是Windows,我找到的最新版本是Lua 5.1 【参考方案1】:数字12345678123456
在转换为字符串时变成1.2345678123457e+015
,所以s1=s1+"."
、s1=s1+"e"
和s1=s1+"+"
有问题。
【讨论】:
我在这里尝试使用这个库:oss.digirati.com.br/luabignum/bn,但我使用的是 redis-cli,我不能使用 require。所以,我只是在我的目录中添加了 BigNum.lua,但我仍然无法使用该库。有什么建议吗? “如何在 redis 中安装 Lua 包”是一个单独的问题。抱歉,我对redis一无所知。以上是关于Lua 错误“尝试对字符串值执行算术运算”的主要内容,如果未能解决你的问题,请参考以下文章