zoukankan      html  css  js  c++  java
  • PowerBuilder -- 数字金额大写

    //====================================================================
    // 事件: .pub_fc_change_number()
    //--------------------------------------------------------------------
    // 描述: 数字转换成大写
    //--------------------------------------------------------------------
    // 参数:
    //     decimal    number    
    //--------------------------------------------------------------------
    // 返回:  string//--------------------------------------------------------------------
    // 修改历史:
    //
    //====================================================================
    String cn_num[10] = {"","","","","","","","","",""} //大写0-9
    String cn_carry[19] = {"","","","","","","","","","","","亿","","","","","","",""} //单位
    String ls_pos,ls_old,ls_number,ls_rc = '', ls_zero, ls_zero_unit
    Integer li_i,li_len //循环变量
    String ls_zf = '' //正负符号
    String ls_value, ls_z
    Boolean lb_zero_yuan
    //参数格式化
    If ade_number < 0 Then
        ls_zf = ''
        ade_number = (-1)*ade_number
    End If
    ls_number = String(ade_number,"0.00")
    //参数的长度
    li_len = Len(ls_number)
    ls_zero = ''
    ls_zero_unit = ''
    lb_zero_yuan = False
    ls_z = ''
    //转换为大写(发票格式),从右到左
    For li_i = 1 To li_len
        ls_value = Mid(ls_number, li_len - li_i + 1, 1)
        If li_i = 1 And ls_value = '0' Then
            // 分 为0
            ls_z = ''
            Continue
        End If
        If li_i = 2 And ls_value = '0' And ls_z <> '' Then
            // 角 为0, 分不为 0
            ls_rc = '' + ls_rc
            Continue
        End If
        
        // 小数点
        If li_i = 3 Then Continue
        
        // 万与元,亿与万之间 存在 0
        If (li_i = 8 Or li_i = 12) And ls_zero = '' Then
            ls_rc = '' + ls_rc
            ls_zero = ''
        End If
        
        // 元 万 亿 为0
        If li_len > 4 And (li_i = 4 Or li_i = 8 Or li_i = 12) And ls_value = '0' Then
            ls_rc = cn_carry[li_i] + ls_rc
            lb_zero_yuan = True
            Continue
        End If
        // 万与元,亿与万之间 存在 0
        If li_len > 5 And li_i > 4 And ls_value = '0' And ls_zero = '' And Not lb_zero_yuan Then
            ls_zero = ''
        End If
        
        If ls_value <> '0' Or li_i = 4 Then
            ls_rc = cn_num[1 + Mod(Integer(ls_value), 10)] + cn_carry[li_i] + ls_zero + ls_rc
            ls_zero = ''
            lb_zero_yuan = False
        End If
        
    Next
    
    ls_rc = ls_zf + ls_rc + ls_z
    
    Return ls_rc //返回结果  100100.11 100100100.11 10010100100.11
  • 相关阅读:
    AjaxMethod js调用后台方法
    鼠标点击清空文本框 失去焦点显示提示信息
    js屏蔽BackSpace 返回上一页
    IE8标准模式打开网页
    Windows无法启动SQL server 代理服务(位于本地计算机上)错误1067:进程意外终止
    遍历枚举,添加进DropDownist
    文本框只能输入数字
    个人开发框架总结(五)
    从Power Design设计文档中提取Model
    FaibClass.WebControls控件详解(一)
  • 原文地址:https://www.cnblogs.com/yarightok/p/7264450.html
Copyright © 2011-2022 走看看