我在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" ?
答案 0 :(得分:5)
在算术运算中,Lua会自动将包含数字的字符串转换为数字。
因此,只需添加a+b+c
的字符串,您就可以获得数字6.6。
如果您想要结果为1位小数,即使它是一个整数,请使用string.format("%.1f",sum)
。