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 错误“尝试对字符串值执行算术运算”的主要内容,如果未能解决你的问题,请参考以下文章

Lua 运算符

我正在尝试对表值进行算术运算

尝试对字段“x”(表值)执行算术运算

Lua复数类算术

lua 运算符

Lua中的表达式