数字金额转中文大写

CString ChineseCapitaMoney(double num)
{
 CString szChMoney,szNum;
 int iLen,iNum,iAddZero = 0;
 TCHAR *hzUnit[] = {_T("分"),_T("角"),_T("元"),_T("拾"),_T("佰"),_T("仟"),_T("万"),_T("拾"),_T("佰"),_T("仟"),_T("亿"),
  _T("拾"),_T("佰"),_T("仟"),_T("万"),_T("拾"),_T("佰"),_T("仟")};
 TCHAR *hzNum[] = {_T("零"),_T("壹"),_T("贰"),_T("叁"),_T("肆"),_T("伍"),_T("陆"),_T("柒"),_T("捌"),_T("玖")};
 szNum.Format(_T("%18.0f"),num*100);
 szNum.TrimLeft();
 iLen = szNum.GetLength();
 if(iLen > 15 || iLen == 0)
   return NULL;

 for(int i = 0;i < iLen;i++)
 {
  iNum = _ttoi((LPCTSTR)szNum.Mid(i,1));
  if(iNum == 0)
   iAddZero++;
  else
  {
   if(iAddZero > 0)
    szChMoney += _T("零");

   szChMoney += hzNum[iNum];
   iAddZero = 0;
  }

  if(iNum != 0 || iLen -i == 3 || iLen - i == 11 ||((iLen - i +1)%8 == 0 && iAddZero < 4))
   szChMoney += hzUnit[iLen -i -1];
 }
 if(szNum.Right(2) == _T("00"))
  szChMoney += _T("整");

 return szChMoney;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值