pb 金额转换(符合中文读数习惯)

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值