社区
C++ Builder
帖子详情
我在fastreport中写了数字转化为大写金额的处理,如果有30个人感兴趣,我将公布源代码
xiaoyu
2002-10-24 01:37:09
目前转换到十万位,不过到亿也容易
//hehe
感兴趣在下面签名
...全文
237
42
打赏
收藏
我在fastreport中写了数字转化为大写金额的处理,如果有30个人感兴趣,我将公布源代码
目前转换到十万位,不过到亿也容易 //hehe 感兴趣在下面签名
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
42 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoyu
2003-02-13
打赏
举报
回复
各位还是不懂
我是在fastreport中使用其提供的函数
实现,
如果在bcb中,那要这么繁
layerr
2003-01-08
打赏
举报
回复
天啦!!!这么简单的问题需要写得这么复杂么?我只用了几行程序就解决了,而且最多可到百亿位。
extern "C" __declspec(dllexport) char* __stdcall dxhb(long double money)
{
AnsiString sz[10]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
AnsiString dw[11]={"佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元"};
AnsiString xx,dx="",num;
int dotpos;
bool zero=false;
if(money<0){dx="金额为负数";return dx.c_str();}
if(money>9E10){dx="金额超出处理范围";return dx.c_str();}
xx=FloatToStr(FloatToCurr(money/100)*100);
dotpos=xx.Pos(".");
if(dotpos==0)dotpos=xx.Length()+1;
for(int i=0;i<dotpos-1;i++){
num=xx.SubString(dotpos-i-1,1);
if(!zero || num!="0" || i%4==0){//如果前面的不是0,或者本位不是0,或处于各段的最低位上
//单位处理
if(num!="0" || i%4==0){ //如果本位不是0或处于每段的最低位时
if((i!=4 || dotpos-1<9) || (i==4 && xx.SubString(dotpos-i-4,4)!="0000")) dx=dw[10-i]+dx; //如果没处于万位上,则写单位;如果处在万位上,但总长度没到“亿”位,则肯定要写万;如果处于万位上,则要看万段的四个数字全部为零,如果全为零,则不写“万”
}
//数字处理
if(i%4==0 && num!="0")dx=sz[StrToInt(num)]+dx; //如果处于最低位而且不为0
else if(i%4!=0)dx=sz[StrToInt(num)]+dx; //否则,当不位于最低位时
}
if(!zero && num=="0")zero=true;
if(num!="0")zero=false;
}
if(xx.Pos(".")!=0){
num=xx.SubString(dotpos+1,1);
dx=dx+sz[StrToInt(num)];
if(num!="0")dx=dx+"角";
if(xx.Length()-dotpos==2){
num=xx.SubString(dotpos+2,1);
if(num!="0")dx=dx+sz[StrToInt(num)]+"分";
}
}else{
dx=dx+"整";
}
return dx.c_str();
}
GaoLun
2002-12-14
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1261/1261573.xml?temp=.6514551
这里 有一个更简单的~
GaoLun
2002-12-14
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1261/1261573.xml?temp=.2644312
这里 有一个更简单的~
GaoLun
2002-12-14
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1261/1261573.xml?temp=.2644312
这里 有一个更简单的~
xiaoyu
2002-11-12
打赏
举报
回复
使用是
显示:r就可以了
有问题
,留短消息
这些“ ”符号不是
xiaoyu
2002-11-12
打赏
举报
回复
谢谢各位
begin
A[0]:='零';
A[1]:='壹';
A[2]:='贰';
A[3]:='叁';
A[4]:='肆';
A[5]:='伍';
A[6]:='陆';
A[7]:='柒';
A[8]:='捌';
A[9]:='玖';
s:= [SUM([DM.paymoney."合计金额"])];
v1:=Str(s*100);
Len:=Length(v1);
r:='';
mo_8:='';
mo_7:='';
mo_6:='';
mo_5:='';
mo_4:='';
mo_3:='';
mo_2:='';
mo_1:='';
mo_12:='';
i:=Len;
c:=Copy(v1,i,1);
mo_1:=A[c]+'分';
if mo_1='零分' then
mo_1:='整';
i:=i-1;
c:=Copy(v1,i,1);
mo_2:=A[c]+'角';
if mo_2='零角' then
mo_2:='零';
i:=i-1;
c:=Copy(v1,i,1);
mo_3:=A[c]+'元';
if mo_3='零元' then
mo_3:='元';
i:=i-1;
if i>0 then
begin
c:=Copy(v1,i,1);
mo_4:=A[c]+'拾';
if mo_4='零拾' then
mo_4:='零';
end
i:=i-1;
if i>0 then
begin
c:=Copy(v1,i,1);
mo_5:=A[c]+'佰';
if mo_5='零佰' then
mo_5:='零';
end ;
i:=i-1;
if i>0 then
begin
c:=Copy(v1,i,1);
mo_6:=A[c]+'仟';
if mo_6='零仟' then
mo_6:='零';
end ;
i:=i-1;
if i>0 then
begin
c:=Copy(v1,i,1);
mo_7:=A[c]+'万';
if mo_7='零万' then
mo_7:='万';
end ;
i:=i-1;
if i>0 then
begin
c:=Copy(v1,i,1);
mo_8:=A[c]+'拾';
if mo_8='零拾' then
mo_8:='零';
end ;
c:=Copy(v1,Len-5,3);
if c='000' then
begin
mo_5:='';
mo_4:='';
end;
c:=Copy(v1,Len-5,2);
if c='00' then
mo_5:='';
c:=Copy(v1,Len-4,2);
if c='00' then
mo_4:='';
mo_3456:=mo_6+mo_5+mo_4+mo_3;
if mo_3456='零元' then
mo_3456:='元';
mo_12:=mo_2+mo_1;
if mo_12='零整' then
mo_12:='整';
r:=mo_8+mo_7+mo_3456+mo_12;
mo_8:='';
mo_7:='';
mo_6:='';
mo_5:='';
mo_4:='';
mo_3:='';
mo_2:='';
mo_1:='';
mo_12:='';
mo_3456:='';
end
niuzhenjun
2002-11-12
打赏
举报
回复
够了,30多了
cyg1dm
2002-11-12
打赏
举报
回复
怎么不公布呀??
phantomlike
2002-11-08
打赏
举报
回复
算我一个
JooJoo
2002-11-06
打赏
举报
回复
也算我一个
Robin
2002-11-06
打赏
举报
回复
不,是30
Robin
2002-11-06
打赏
举报
回复
我是29
sunnyqcy
2002-11-05
打赏
举报
回复
算我一个
勉励前行
2002-11-05
打赏
举报
回复
其实我不感兴趣,但为了让感兴趣的人能看到代码,多出一份力。
也算上一份吧。
xiaoyu
2002-11-05
打赏
举报
回复
非常感谢各位
我将在明天公布源代码
谢谢
如果不出现意外
hehe
ljlln
2002-11-05
打赏
举报
回复
gz
cardinalh
2002-11-05
打赏
举报
回复
好东西要大家分享嘛,何必在意有多少人呢。
期待
danna
2002-11-05
打赏
举报
回复
算我一个
waxidanna@hotmail.com
谢谢!
mynameis007
2002-11-05
打赏
举报
回复
我是第27个
我只充数.我不要代码?
加载更多回复(22)
Fast
Report
4小写
金额
转
大写
金额
Fast
Report
4 小写
金额
转中文
大写
金额
,C#代码脚本 例子中代码放入Table中TableCell的AfterData事件中
Fast
Report
小写
金额
转
大写
Fast
Report
小写
金额
转
大写
初级到CS开发高手通用权限管理系统全程实录
本课程主讲项目的功能模块主要有:用户管理、角色管理、菜单管理、权限管理、...另外像ADO.NET、分层、事务、视图、委托、反射、WebService、
Fast
Report
.NET、Dev、RDLC、EpPlus操作EXCEL等知识点全部贯穿在视频中讲解
fast
report
中重量小写转换为
大写
.txt
fast
report
中重量小写转换为
大写
C#
大写
金额
转
数字
代码
最近需要用到将
大写
人民币的
金额
转成小写数值形式,在网上找了很多也没有相关的代码,于是自己写了一个C#的代码,现在共享出来希望对大家有用。
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章