Lua中将逗号分隔的数字相加

我在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"

我知道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

我以整数格式接收结果 ((integer) 224 ),如何以真实的浮点数格式字符串 "224.5" 接收结果?

点赞
用户107090
用户107090

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

因此,只需使用a+b+c将字符串相加即可得到数字6.6。

如果你想要即使是整数也带有一位小数的结果,使用string.format("%.1f",sum)

2016-04-20 13:34:44