小写金额转换成大写金额
2007-06-04 09:38
399 查看
//**************************************************************************
//功能: 小写金额转换成大写金额 .
//参数: decvalue: Decimal, 小写金额 .
//返回: String , 成功返回大写金额 , 否则返回空 .
//说明: 金额不能大于 15 位 ( 即千亿 ) , 形式如 '### ### ### ##0 .00'
//**************************************************************************
boolean lb_first_zero
int li_1 , li_len
string ls_hz1[] , ls_hz2[] , ls_Return , ls_temp , ls_argument
ls_hz1[1] = "分"
ls_hz1[2] = "角"
ls_hz1[3] = ""
ls_hz1[4] = "元"
ls_hz1[5] = "拾"
ls_hz1[6] = "佰"
ls_hz1[7] = "仟"
ls_hz1[8] = "万"
ls_hz1[9] = "拾"
ls_hz1[10] = "佰"
ls_hz1[11] = "仟"
ls_hz1[12] = "亿"
ls_hz1[13] = "拾"
ls_hz1[14] = "佰"
ls_hz1[15] = "仟"
ls_hz2[1] = "壹"
ls_hz2[2] = "贰"
ls_hz2[3] = "叁"
ls_hz2[4] = "肆"
ls_hz2[5] = "伍"
ls_hz2[6] = "陆"
ls_hz2[7] = "柒"
ls_hz2[8] = "捌"
ls_hz2[9] = "玖"
ls_hz2[10] = "零"
IF decvalue = 0 THEN
Return ''
END IF
ls_argument = string( decvalue ,"############0.00")
// 数值不能大于千亿
IF len( ls_argument ) > 15 THEN
Return ''
END IF
IF right( ls_argument , 1 ) = '0' THEN ls_Return = '整'
// 开始循环 , 处理方式为: Right --> Left
Do While True
li_1 += 1
li_len = len( ls_argument )
ls_temp = right( ls_argument , 1 )
ls_argument = left( ls_argument , li_len - 1 )
// 右取值为空.点.负号时
IF ls_temp = '' or isnull( ls_temp ) THEN
Exit
END IF
IF ls_temp = '.' THEN
continue
END IF
IF ls_temp = '-' THEN
ls_Return = '负' + ls_Return
continue
END IF
// 右取值不为 0 .
IF ls_temp <> '0' THEN
ls_Return = ls_hz2[ integer(ls_temp) ] + ls_hz1[ li_1 ] + ls_Return
lb_first_zero = True
Else
IF lb_first_zero THEN
IF (li_1 <> 4 and li_1 <> 2) or dec(ls_argument) <> 0 THEN
ls_Return = '零' + ls_Return
END IF
lb_first_zero = false
END IF
IF li_1 = 12 or li_1 = 8 THEN
IF right(ls_argument, 3) <> '000' THEN ls_Return = ls_hz1[ li_1] + ls_Return
END IF
IF li_1 = 4 THEN
IF dec(ls_argument) <> 0 THEN ls_Return = ls_hz1[ li_1 ] + ls_Return
END IF
END IF
Loop
Return ls_Return
//功能: 小写金额转换成大写金额 .
//参数: decvalue: Decimal, 小写金额 .
//返回: String , 成功返回大写金额 , 否则返回空 .
//说明: 金额不能大于 15 位 ( 即千亿 ) , 形式如 '### ### ### ##0 .00'
//**************************************************************************
boolean lb_first_zero
int li_1 , li_len
string ls_hz1[] , ls_hz2[] , ls_Return , ls_temp , ls_argument
ls_hz1[1] = "分"
ls_hz1[2] = "角"
ls_hz1[3] = ""
ls_hz1[4] = "元"
ls_hz1[5] = "拾"
ls_hz1[6] = "佰"
ls_hz1[7] = "仟"
ls_hz1[8] = "万"
ls_hz1[9] = "拾"
ls_hz1[10] = "佰"
ls_hz1[11] = "仟"
ls_hz1[12] = "亿"
ls_hz1[13] = "拾"
ls_hz1[14] = "佰"
ls_hz1[15] = "仟"
ls_hz2[1] = "壹"
ls_hz2[2] = "贰"
ls_hz2[3] = "叁"
ls_hz2[4] = "肆"
ls_hz2[5] = "伍"
ls_hz2[6] = "陆"
ls_hz2[7] = "柒"
ls_hz2[8] = "捌"
ls_hz2[9] = "玖"
ls_hz2[10] = "零"
IF decvalue = 0 THEN
Return ''
END IF
ls_argument = string( decvalue ,"############0.00")
// 数值不能大于千亿
IF len( ls_argument ) > 15 THEN
Return ''
END IF
IF right( ls_argument , 1 ) = '0' THEN ls_Return = '整'
// 开始循环 , 处理方式为: Right --> Left
Do While True
li_1 += 1
li_len = len( ls_argument )
ls_temp = right( ls_argument , 1 )
ls_argument = left( ls_argument , li_len - 1 )
// 右取值为空.点.负号时
IF ls_temp = '' or isnull( ls_temp ) THEN
Exit
END IF
IF ls_temp = '.' THEN
continue
END IF
IF ls_temp = '-' THEN
ls_Return = '负' + ls_Return
continue
END IF
// 右取值不为 0 .
IF ls_temp <> '0' THEN
ls_Return = ls_hz2[ integer(ls_temp) ] + ls_hz1[ li_1 ] + ls_Return
lb_first_zero = True
Else
IF lb_first_zero THEN
IF (li_1 <> 4 and li_1 <> 2) or dec(ls_argument) <> 0 THEN
ls_Return = '零' + ls_Return
END IF
lb_first_zero = false
END IF
IF li_1 = 12 or li_1 = 8 THEN
IF right(ls_argument, 3) <> '000' THEN ls_Return = ls_hz1[ li_1] + ls_Return
END IF
IF li_1 = 4 THEN
IF dec(ls_argument) <> 0 THEN ls_Return = ls_hz1[ li_1 ] + ls_Return
END IF
END IF
Loop
Return ls_Return
相关文章推荐
- MSSql 自定义函数实现小写金额转换成大写(最高13位不包括小数点后两位)
- 将小写金额转换为中文大写的SQL函数
- 金额小写转换为大写脚本
- 用PHP实现小写金额转换大写金额【精确到分】
- delphi 中小写金额转换为大写
- 用PHP实现小写金额转换大写金额的代码(精确到分)
- 将小写金额转换为中文大写的SQL函数
- [转贴]将小写金额转换为英文大写的SQL函数
- 阿拉伯数字小写金额转换成中文大写金额C程序说明
- 将小写金额转换为英文大写的SQL函数
- JavaScript将小写金额转换成大写
- Excel数字小写金额转换汉字大写金额公式的简单设置
- 小写金额转换成中文大写金额--搜藏
- 将小写金额转换成为大写
- 将小写金额转换为中文大写
- [记录]将小写金额转换为大写金额
- .NET把小写数字金额转换成大写人民币金额的两种算法
- 小写金额转换为大写金额(vb2010)
- 小写金额转换成大写金额的函数
- 将小写金额转换成大写