lua 数字格式化输出
来源:互联网 发布:centos 文件夹扩容 编辑:程序博客网 时间:2024/06/05 00:32
需求:
1,金币个数小于5位数,全显示。
2,金币个数 >= 5且 < 9,除以1w,保留2位小数后带有“万”单位。
3,金币个>=9,除以1亿,保留2位小数后带有“亿”单位。
4,带有“万”、“亿”并保留两位小数,但不做四舍五入处理。如:12345缩进万,显示1.23万。
细节:
若小数点最后位是0,则隐藏最后位的0;若小数点后两位为0,则隐藏小数点和两个0。
直接上代码:
function format_number(number) if number == nil or type(number) ~= "number" then print("参数数值类型错误") else local num_length, num_str = string.len(number), tostring(number) local function handler_dot(curNum, curUnit) local tmp_decimal_str = "" local integer_num, dot_num = math.modf(curNum/curUnit) local decimal_num = curNum/curUnit if decimal_num ~= 0 and string.find(tostring(decimal_num), "%.") thentmp_decimal_str = tmp_decimal_str .. string.sub(tostring(decimal_num), string.find(tostring(decimal_num), "%."), string.find(tostring(decimal_num), "%.") + 2) local first_str = string.sub(tostring(tmp_decimal_str), 2, 2) local second_str= string.sub(tostring(tmp_decimal_str), 3, 3) if second_str ~= "0" and second_str ~= "" then --tmp_decimal_str = tmp_decimal_str .. string.sub(tostring(decimal_num), 2, string.find(tostring(decimal_num), ".") + 3) else if first_str ~= "" and first_str ~= "0" then tmp_decimal_str = "." .. first_str else tmp_decimal_str = "" end end end return tostring(integer_num) .. tmp_decimal_str end if num_length < 5 then return num_str elseif num_length >= 5 and num_length < 9 then--万 return handler_dot(number, 10^4) .. "万" elseif num_length >= 9 then--亿 return handler_dot(number, 10^8) .. "亿" end endend
阅读全文
1 0
- lua 数字格式化输出
- lua 格式化输出字符串
- lua 格式化输出
- 格式化输出数字
- 格式化输出数字
- 格式化输出数字
- 格式化输出数字
- 格式化输出数字
- C#数字格式化输出
- C#数字格式化输出
- C#数字格式化输出
- javascript :数字格式化输出
- 数字格式化输出
- C#数字格式化输出
- C#数字格式化输出
- C#数字格式化输出
- C# 数字格式化输出
- Java格式化输出数字
- linux vi操作
- Kafka学习总结(六)——应用开发
- Python 地图坐标的转换
- js---如何通过js/jQuery代码出发节点的click事件
- 5.19滴滴大数据研发实习
- lua 数字格式化输出
- 智能IoT系统框架理论
- github中创建自己的cocoapod私有库_异常问题解决
- 【Java邮件开发】7.邮件的基本格式与编码
- 软件设计六大原则
- hiho第151周 Building in Sandbox floodfill
- 初等排序之插入排序
- LeetCode:Sort Colors
- SpringBoot开发详解(八) -- 使用Swagger2构建API文档