String ls_hz1[] , ls_hz2[] , ls_return , ls_temp , ls_argument
Int li_1 , li_len
Boolean lb_first_zero
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 ad_number = 0 Then
Return ''
End If
ls_argument = String( ad_number ,"############0.00")
// 数值不能大于千亿
If Len( ls_argument ) > 15 Then
Return ''
End If
If Right(ls_argument,1) = '0' Then ls_return = '整'
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
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 //如果第一次遇见'0',除元、角
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