【问题标题】:sum string comma separated numbers in lua在lua中求和字符串逗号分隔的数字
【发布时间】:2016-04-21 02:32:51
【问题描述】:

我在 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”的结果?

【问题讨论】:

  • Lua 5.3 确实区分了浮点数和整数。
  • 什么是“逗号分隔格式”? 1,000,000.00 10^6 之类的东西?
  • 我已经更新了问题
  • 你想要什么字符串作为结果 224?如果你想要224.0,请使用string.format("%.1f",sum)
  • @lhf 我想要十进制数字的结果。我不知道为什么结果是 224。

标签: lua redis


【解决方案1】:

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

所以,只需添加带有a+b+c 的字符串,您就会得到数字 6.6。

如果您希望得到小数点后 1 位的结果,即使它是整数,请使用 string.format("%.1f",sum)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多