在lua中汇总字符串逗号分隔的数字

Jos*_*epB 2 lua redis

我在lua脚本中接收来自redis的哈希,其中包含字符串格式的数字.

1) "30"
2) "30.7"
3) "12.7"
4) "15.7"
5) "20.7"
6) "19.7"
7) "20.5"
8) "21.5"
9) "22.3"
10) "30.7"
Run Code Online (Sandbox Code Playgroud)

我知道Lua不区分浮点数和整数.

这是脚本:

local sum = "0.0"
local matches = redis.call('KEYS', 'sdid:*')

for _,key in ipairs(matches) do
    local val = redis.call('HGET', key ,'data')
    sum = sum + val
end

return sum
Run Code Online (Sandbox Code Playgroud)

我收到整数格式的结果((整数)224)我怎样才能收到真实格式字符串"224.5"的结果?

lhf*_*lhf 5

在算术运算中,Lua自动将包含数字的字符串转换为数字.

所以,只需添加字符串,a+b+c您将获得数字6.6.

如果你希望结果有1个小数位,即使它是一个整数,请使用string.format("%.1f",sum).