gpt4 book ai didi

string - 让 Lua 中的数字更容易阅读

转载 作者:行者123 更新时间:2023-12-02 06:58:54 26 4
gpt4 key购买 nike

所以在过去一个小时左右的时间里,我一直在使用这个使数字更容易阅读的函数时遇到问题。在当前状态下,该函数确实适用于长度低于 6 个字符的数字,如下所示。

1000,000
100,000

请原谅我业余的变量处理方式。

function neatnumber(number)
local nslen = string.len(tostring(number))
if nslen <= 3 then
return number
end
local ns = tostring(number)
local nslen = math.floor(string.len(ns) / 3)-1
for i=1,nslen do
neat = string.sub(ns,-#ns,#s-(3*i)) .. "," .. string.sub(ns,#ns-(2))
end
return neat
end

最佳答案

可能有更优雅的方法,但您可以在循环中使用string.gsub

local function neatnumber(n)
local s, i = string.format('%0.f', n)
repeat
s, i = s:gsub('^(%-?%d+)(%d%d%d)', '%1,%2')
until i == 0
return s
end

gsub 模式扫描字符串中的数字(可能为负数),查找连续的十进制数字,并捕获整个序列直至最后三位数字。第二次捕获获取最后三位数字。替换连接两个捕获并在之间添加逗号。

这应该适用于任何大小的整数(正数或负数):

neatnumber(2^53)   -->  9,007,199,254,740,992
neatnumber(-2^53) --> -9,007,199,254,740,992

关于string - 让 Lua 中的数字更容易阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com