在lua

时间:2016-04-20 13:20:02

标签: 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"

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

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

1 个答案:

答案 0 :(得分:5)

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

因此,只需添加a+b+c的字符串,您就可以获得数字6.6。

如果您想要结果为1位小数,即使它是一个整数,请使用string.format("%.1f",sum)