在Lua中使数字更易于阅读
2015-1-11 4:3:5
收藏:0
阅读:121
评论:2
所以,在过去一个小时左右,我一直在处理这个函数,以便更容易阅读数字。
目前,这个函数在字符长度小于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
点赞
用户234175
以下是另一种解决方案,同样使用了string.gsub但是没有使用循环:
function neatnumber(n, delim)
delim = delim or ','
n = ('%0.f'):format(n)
local groups = math.ceil(#n / 3) - 1
n = n:reverse()
n = n:gsub('(%d%d%d)', '%1' .. delim, groups)
return n:reverse()
end
2015-01-11 05:40:18
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
可能有更加优雅的方法,但可以在循环中使用
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 endgsub模式扫描字符串中的数字(可能是负数),查找连续的十进制数字,并捕获整个序列,直到最后的三位数字。第二次捕获得到最后三位数字。替换将两个捕获拼接在一起,并在中间添加逗号。这对于任何大小的整数(正数或负数)都应该有效:
neatnumber(2^53) --> 9,007,199,254,740,992 neatnumber(-2^53) --> -9,007,199,254,740,992