人民币小写金额到大写源码
.版本 2
.支持库 DeelxRegEx
.子程序 金额到大写, 文本型
.参数 小写金额, 文本型
.局部变量 integral, 文本型
.局部变量 decimal, 文本型
.局部变量 outputCharacters, 文本型
.局部变量 RegExp, 正则表达式DEELX
.局部变量 SearchResult, 搜索结果DEELX
.局部变量 parts, 文本型, , "0"
.局部变量 digits, 文本型, , "10"
.局部变量 radices, 文本型, , "4"
.局部变量 bigRadices, 文本型, , "3"
.局部变量 decimals, 文本型, , "2"
.局部变量 zeroCount, 整数型
.局部变量 i, 整数型
.局部变量 len, 整数型
.局部变量 p, 整数型
.局部变量 d, 文本型
.局部变量 quotient, 双精度小数型
.局部变量 modulus, 双精度小数型
.如果真 (小写金额 = “”)
信息框 (“请输入小写金额!”, 0, , )
返回 (“”)
.如果真结束
RegExp.创建 (“[^,.\d]”, , )
SearchResult = RegExp.查找匹配 (小写金额, )
.如果真 (取反 (SearchResult.是否为空 ()))
信息框 (“小写金额含有无效字符!”, 0, , )
返回 (“”)
.如果真结束
RegExp.创建 (“^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$”, , )
SearchResult = RegExp.查找匹配 (小写金额, )
.如果真 (SearchResult.是否为空 ())
信息框 (“小写金额的格式不正确!”, 0, , )
返回 (“”)
.如果真结束
小写金额 = 子文本替换 (小写金额, “,”, “”, , , 真)
RegExp.创建 (“^0+”, , )
小写金额 = RegExp.替换 (小写金额, “”, , )
.如果真 (到数值 (小写金额) > #MAXIMUM_NUMBER)
信息框 (“金额过大,应小于1000亿元!”, 0, , )
返回 (“”)
.如果真结束
parts = 分割文本 (小写金额, “.”, )
.如果 (取数组下标 (parts, ) > 1)
integral = parts [1]
decimal = parts [2]
decimal = 取文本左边 (decimal, 2)
.否则
integral = parts [1]
decimal = “”
.如果结束
digits = { “零”, “壹”, “贰”, “叁”, “肆”, “伍”, “陆”, “柒”, “捌”, “玖” }
radices = { “”, “拾”, “佰”, “仟” }
bigRadices = { “”, “万”, “亿” }
decimals = { “角”, “分” }
.如果真 (到数值 (integral) > 0)
len = 取文本长度 (integral)
.计次循环首 (len, i)
p = len - i
d = 取文本中间 (integral, i, 1)
quotient = p ÷ 4
modulus = p % 4
.如果 (d = “0”)
zeroCount = zeroCount + 1
.否则
.如果真 (zeroCount > 0)
outputCharacters = outputCharacters + digits [1]
.如果真结束
zeroCount = 0
outputCharacters = outputCharacters + digits [到整数 (d) + 1] + radices [modulus + 1]
.如果结束
.如果真 (modulus = 0 且 zeroCount < 4)
outputCharacters = outputCharacters + bigRadices [quotient + 1]
zeroCount = 0
.如果真结束
.计次循环尾 ()
outputCharacters = outputCharacters + “元”
.如果真结束
i = 0
.如果真 (decimal ≠ “”)
len = 取文本长度 (decimal)
.计次循环首 (len, i)
d = 取文本中间 (decimal, i, 1)
.如果真 (d ≠ “0”)
outputCharacters = outputCharacters + digits [到数值 (d) + 1] + decimals [i]
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真 (outputCharacters = “”)
outputCharacters = “零元”
.如果真结束
.如果真 (decimal = “”)
outputCharacters = outputCharacters + “整”
.如果真结束
outputCharacters = “人民币” + outputCharacters
返回 (outputCharacters)
易语言小数到大写
易语言数值到小写货币