⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 目前代码行最少、bug最少的数字转汉字金额的函数.txt

📁 PB常用技巧 PB常用技巧 PB常用技巧
💻 TXT
字号:
 [原创]目前代码行最少、Bug最少的数字转汉字金额的函数

//======================================================================
// Function: f_decimaltocn()
// Description: 将数字转化为汉字大写金额
//----------------------------------------------------------------------
// Arguments: 
//      decimal   number      欲转换的数字,最大±1亿亿 - 0.01
// Returns:  string      结果,如果超出范围,返回""
//----------------------------------------------------------------------
// Author:   RJH      Date: Apr 03,2004
//======================================================================
string CN_NUM[10] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"} //   大写0-9
string CN_CARRY[18] = {"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟"}
string ls_number,ls_rc
integer li_pos,li_for,li_len
If number < 0 Then ls_rc = "负"
ls_number = string(ABS(Number) * 100,"0")
li_len = Len(ls_number)
If li_len > UpperBound(CN_CARRY) Then Return ''
For li_for = 1 To li_len
   li_pos = Integer(Mid(ls_number,li_for,1))
   If li_pos <> 0 Then      ////   非零值的处理,很简单
      ls_rc += CN_NUM[li_pos + 1] + CN_CARRY[li_len - li_for + 1]
   ElseIf Mod(li_len - li_for - 2,4) = 0 Then   ///元、万、亿、万亿进位
      If Right(ls_rc,2) = CN_NUM[1] Then ls_rc = Left(ls_rc,Len(ls_rc) - 2)
      If li_len - li_for <> 6 Or Right(ls_rc,2) <> "亿" Then ls_rc += CN_CARRY[li_len - li_for + 1]
      ls_rc += CN_NUM[1]
   ElseIf Right(ls_rc,2) <> CN_NUM[1] Then
      ls_rc += CN_NUM[1]
   End If
Next
If Right(ls_rc,2) = CN_NUM[1] Then ls_rc = Left(ls_rc,Len(ls_rc) - 2)
If Right(ls_rc,2) = "元" Then ls_rc += "整"
Return ls_rc


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -