谁能给个BCB版的金额小写转换成人民币大写的代码,100分送,谢谢!

NetSpider9804040 2011-09-18 10:53:16
谁能给个BCB版的金额小写转换成人民币大写的代码,100分送,谢谢!
...全文
349 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
七擒关羽 2011-09-19
  • 打赏
  • 举报
回复
各位鸟鸟大侠,学习下google大法和帮助文档神功
jone7319 2011-09-19
  • 打赏
  • 举报
回复
看这里:http://topic.csdn.net/u/20080918/10/0468393a-e32e-4521-820c-3ce68bed991b.html
jone7319 2011-09-19
  • 打赏
  • 举报
回复
这是几年前写的代码,你参考修改一下

String __fastcall TForm1::NumToCnum(long num)
{
String cstr=" 一二三四五六七八九";
String str=" 十 百 千 万 十 百 千 亿 十 百 千 万十万百万千万";
String n=num;

String c,cc,cn="",b="",x="零";
for(int i=1;i<=n.Length();i++)
{
c=(n.SubString(i-1,1)==0 && n.SubString(i,1)!=0)?x+cstr.SubString(2*n.SubString(i,1).ToInt()+1,2).Trim():cstr.SubString(2*n.SubString(i,1).ToInt()+1,2).Trim();//取数字
cc=(n.SubString(i,1)=="0" && n.Length()-i!=4 && n.Length()-i!=9)?b:(str.SubString(4*(n.Length()-i)+1,4).Trim()) ;//取基数
cn+=(n.Length()+1-i)==1?c:c+cc.Trim(); //组成中文数字
}
return cn.Trim();
}
/*
作了如下简单测试:
20 ->二十
300 -> 三百
405 -> 四百零五
123 ->一百二十三
300400 ->三十万零四百
1020304050 -> 一十亿零二千零三十万零四千零五十
123456789 -> 一亿二千三百四十五万六千七百八十九
*/


zzbinfo 2011-09-18
  • 打赏
  • 举报
回复
网上流传的版本
//---------------------------------------------------------------------------
AnsiString CurrToChnNum(AnsiString CurrNum, bool DisplayZero, int SpaceNum)
//参数说明:CurrNum 这个是要转化的数值
//      DisplayZero 是否要显示零 如:(显示零)壹佰 零拾 叁元 伍角 伍分
// SpaceNum 字符间的空格数,默认值为2
{
//数值转换为大写金额
//18个数字单位
const String Dw[18] = {"分","角","圆","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};
//10个数码
const String Num[10] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
AnsiString sTemp;
// sTemp = FormatFloat("0.00", CurrNum); //格式化数值
sTemp = CurrNum;
sTemp.Delete(sTemp.Pos(".")+3,sTemp.Length()-sTemp.Pos("."));
sTemp.Delete(sTemp.Pos("."), 1); //去掉小数点
if ( sTemp.Length() > 18 ) //是否超长?
{
MessageDlg("数值位数太多,不能处理!",mtError,TMsgDlgButtons() << mbYes,0);
return NULL;
}
AnsiString sRusult = " "; //字串的头部字符,根据喜好
for (int i = sTemp.Length(); i > 0; i--) //开始加工
{
if ( !DisplayZero && i > 2 && sTemp[sTemp.Length() - i + 1] - 48 == 0 )
continue;
sRusult += Num[sTemp[sTemp.Length()-i+1]-48];
sRusult += Dw[i-1];
sRusult += AnsiString::StringOfChar(' ', SpaceNum);
}
return sRusult;
}
//-------------------------------------------------------------------------
ccrun.com 2011-09-18
  • 打赏
  • 举报
回复
google "site:topic.csdn.net C++Builder 金额 人民币 大写"

代码一大堆,随便给你两个链接。

http://topic.csdn.net/t/20040326/10/2888759.html
http://topic.csdn.net/u/20100713/09/520f5648-827f-496b-86b4-3ffd069764e5.html

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧