Lua 实现数字转化为中文
来源:互联网 发布:linux java配置 编辑:程序博客网 时间:2024/06/06 00:14
local zhChar = {'一','二','三','四','五','六','七','八','九'}
return num .. 'is not a num'
end
local numStr = tostring(num)
local len = string.len(numStr)
local str = ''
local has0 = false
for i = 1, len do
local n = tonumber(string.sub(numStr,i,i))
local p = len - i + 1
if n > 0 and has0 == true then --连续多个零只显示一个
str = str .. '零'
has0 = false
end
if p % 4 == 2 and n == 1 then --十位数如果是首位则不显示一十这样的
if len > p then
str = str .. zhChar[n]
end
str = str .. places[p]
elseif n > 0 then
str = str .. zhChar[n]
str = str .. places[p]
elseif n == 0 then
if p % 4 == 1 then --各位是零则补单位
str = str .. places[p]
else
has0 = true
end
end
end
return str
end
local places = {'','十','百','千','万','十','百','千','亿','十','百','千','万'}
function formatNumber( num )
if type(num) ~= 'number' thenreturn num .. 'is not a num'
end
local numStr = tostring(num)
local len = string.len(numStr)
local str = ''
local has0 = false
for i = 1, len do
local n = tonumber(string.sub(numStr,i,i))
local p = len - i + 1
if n > 0 and has0 == true then --连续多个零只显示一个
str = str .. '零'
has0 = false
end
if p % 4 == 2 and n == 1 then --十位数如果是首位则不显示一十这样的
if len > p then
str = str .. zhChar[n]
end
str = str .. places[p]
elseif n > 0 then
str = str .. zhChar[n]
str = str .. places[p]
elseif n == 0 then
if p % 4 == 1 then --各位是零则补单位
str = str .. places[p]
else
has0 = true
end
end
end
return str
end
测试一下:
print(formatNumber(123456789111))
输出:一千二百三十四亿五千六百七十八万九千一百一十一
要精确到多少位,则在places 数组后补充。
places 数组还可以进行优化,请大神指点是否需要
0 0
- Lua 实现数字转化为中文
- 将数字转化为中文
- 将数字转化为中文
- 将数字转化为中文
- iOS 阿拉伯数字转化为中文数字
- 数字金额转化为中文大写
- iOS阿拉伯数字转化为中文数字
- 阿拉巴数字转化为中文大写
- JavaScript 动态将数字金额转化为中文大写金额
- PHP将数字金额转化为中文人民币大写
- 算法——阿拉伯数字转化为中文数字
- 使用链表将阿拉伯数字转化为中文大写数字
- 数字转化为英文
- 字符串转化为数字
- 字符串转化为数字
- 字符串转化为数字
- 数字转化为大写
- 字符转化为数字
- 职责链模式之真假美猴王
- poj 2976-Dropping tests
- TextView,省略号
- 6.24
- ReportEase Plus报告设计器执行器详细介绍
- Lua 实现数字转化为中文
- 如何解决 Eclipse中出现,访问限制
- 状态数据保存和恢复
- ios的AppDelegate和UIViewController的函数调用顺序
- 文本查询系统
- Fedora 添加用户 没有用户无法进入系统
- #pragma warning(n)支持
- 使用rm将文件移到回收站
- Android 开机启动APP,不显示默认的桌面