PB金额大小写转换

 //==============================================================================
// 函数: f_getBigMoney()
//------------------------------------------------------------------------------
// 描述: 返回大写金额
//------------------------------------------------------------------------------
// 参数:
//        value    decimal    adec_money        待转换为大写的金额
//------------------------------------------------------------------------------
// 返回值:  string
//------------------------------------------------------------------------------
// 作者:    Ran(Sunday_hl)        日期: 2006.08.22
//------------------------------------------------------------------------------
// 修改历史:
//    
//==============================================================================
String ls_num[]  = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"} ;
String ls_unit[] = {"分","角","","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"} ;
String ls_dec,ls_return,ls_char ;
Integer li_index,li_num ;
Decimal{2} ldec_arg,ldec_xs ;

ldec_arg = adec_money ;
//如果为零,直接返回“零”
IF IsNull(ldec_arg) OR ldec_arg = 0.00 THEN RETURN ls_num[1] ;
//取小数,如果没小数 那么显示多少元整
ldec_xs = Mod(ldec_arg,1)
IF ldec_xs = 0.00 THEN ls_return = "整" ;
//把金额转换为字符串,并且把字符串倒置过来
ls_dec = Reverse(String(ldec_arg,"##0.00")) ;
//从低位向高位 逐位提取
FOR li_index = 1 TO Len(ls_dec)
    IF li_index > UpperBound(ls_unit) THEN EXIT ;
    //取得当前位,如果不是数字(如 .) 就进入下一循环    
    ls_char = Mid(ls_dec,li_index,1) ;
    IF NOT IsNumber(ls_char) THEN CONTINUE ;
    //把取得的当前位 转换为数值型
    li_num = Integer(ls_char) ;
    //如果当前位不为0,或要转换的金额不足一元,或者在小数(如果有的话)的时候,直接显示数值加单位
    If (li_num <> 0 OR ldec_arg < 1 Or (li_index < 4 AND ldec_xs > 0.00)) THEN
        ls_return = ls_num[li_num + 1] + ls_unit[li_index] + ls_return ;
    ElseIf (li_index = 4 OR li_index = 8 OR li_index = 12) THEN
        //如果当前位为0,且在个位、万位、亿位的时候加上单位
        IF li_index = 8 AND Len(ls_dec) >= 12 THEN CONTINUE ;
        ls_return = ls_unit[li_index] + ls_return ;
    ELSEIF Integer(Mid(ls_dec,li_index - 1,1)) <> 0  THEN
        //如果当前位为0,且前一位不为0,那么加上 “零”
        ls_return = ls_num[li_num + 1] + ls_return ;
    END IF
NEXT
//返回所转换得到的金额
RETURN ls_return ;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值