自动添加逗号的数值表示方法有哪些?

例如:1000000 变成 1,000,000。

如果你能用 Lua 做出来会更好

点赞
用户4984564
用户4984564
本地函数 `commas` 用于将数字添加逗号分隔符。 

函数实现如下:

```lua
local function commas(number)
   return tostring(number) -- 确保 "number" 是一个字符串
      :reverse() -- 反转字符串
      :gsub('%d%d%d', '%0,') -- 在每三个数字后插入一个逗号
      :gsub(',$', '') -- 如果有尾部逗号请移除
      :reverse() -- 再次反转字符串
      :sub(1) -- 小技巧用于移除第二个返回值
end

使用示例:

print(commas(1000000))  -- 输出 "1,000,000"
print(commas(111))      -- 输出 "111"
print(commas(3.141592)) -- 报错
2020-02-05 08:25:17
用户10126088
用户10126088

Lua-users-wiki 为你的问题提供了一个 示例实现

function comma_value(amount)
  local formatted = amount
  while true do
    formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
    if (k==0) then
      break
    end
  end
  return formatted
end

print(comma_value(1000000))
print(comma_value(111))
print(comma_value(3.141592))

输出:

1,000,000
111
3.141592

另一种版本

function comma_value(n) -- credit http://richard.warburton.it
    local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
    return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
2020-02-05 10:13:59