社区
ATL
帖子详情
如何把:会计上的金额:123456789.321转换成中文大写 和 英文.??
yuansuibo108
2003-05-06 06:02:18
如何把:会计上的金额:123456789.321转换成中文大写 和 英文.??
壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆叁角贰分壹厘.
和相应的英文写法???????????
...全文
468
4
打赏
收藏
如何把:会计上的金额:123456789.321转换成中文大写 和 英文.??
如何把:会计上的金额:123456789.321转换成中文大写 和 英文.?? 壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆叁角贰分壹厘. 和相应的英文写法???????????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
明天好,会的
2003-05-08
打赏
举报
回复
我这里也有一个,是我看了楼上的那位写的,自认为比楼上的那位的适应性要强,当然使用起来也没有楼上的那么方便,使用之前你要指定格式哟,这个函数没有做多少测试,欢迎测试,如果有问题发邮件到czy@vip.163.com,谢谢指教,多多交流
参数简介:MFormat为输入格式,Money为金额(字符),StrMoney为返回的大写金额
BOOL APIENTRY UpperMoney(LPCSTR MFormat, LPCSTR Money, LPSTR StrMoney)
{
//确定占位符,其中--为输出占位符
//如果占位符为--#--#--#.--#--#,那么只返回中文数字
//如果占位符为--拾--元.--角--分,那么就要返回中文数字及单位
//输入数字的格式必须为####.00
//算法:从右边开始扫描输入,只认-
int intlen = 0;//字符长度
int intlenF = 0;//格式长度
int i = 0;//标记当前数字位置
int l = 0;//标记当前格式符的位置
CHAR LocalMoney[50];//本地操作变量
CHAR Sign[20];//参数 = "零壹贰叁肆伍陆柒捌玖";
CHAR strNum[2];//中文数字
CHAR strNum1[2];//数字
int intNum = 0;//每一个数字
intlenF = _mbstrlen(MFormat);
intlen = _mbstrlen(Money);
strcpy(LocalMoney, Money);//拷贝数据到本地缓冲区
strcpy(Sign, "零壹贰叁肆伍陆柒捌玖");
//将格式符赋给传出参数
strcat(StrMoney, MFormat);
i = intlen - 1;
for (l = intlenF - 1; l >= 0; l --){//扫描格式符
//如果遇到#,将其设为" "
if (StrMoney[l] == '#'){
StrMoney[l] = ' ';//设为空字符
continue;
}
if (StrMoney[l] == '.')
continue;
if (StrMoney[l - 1] == '-' && StrMoney[l] == '-'){
//MessageBox(NULL, "hhh", "xxx", MB_OK);
if (i >= 0){
strNum1[0] = LocalMoney[i];
if (strNum1[0] == '.'){
i --;
strNum1[0] = LocalMoney[i];
}
strNum1[1] = '\0';
//MessageBox(NULL, strNum1, "ok", MB_OK);
intNum = atoi(strNum1);
strNum[0] = Sign[intNum * 2];
strNum[1] = Sign[intNum * 2 + 1];
i --;//移动标记值
}
//写入数字
StrMoney[l - 1] = strNum[0];
StrMoney[l] = strNum[1];
}
}
return TRUE;
}
meCAD
2003-05-06
打赏
举报
回复
String UpperMoney(double jn)
{
int L , ZL , Z , U , V;
AnsiString F = "壹贰叁肆伍陆柒捌玖" ;
AnsiString G = "元万亿万拾佰仟分角" ;
AnsiString AA , B , JNS;
JNS.SetLength(255);
double je ;
if(jn<=0)
return "零" ;
je=(jn<1?jn*100:jn);
sprintf(JNS.c_str(),"%26.2f",je) ;
JNS=TrimRight(TrimLeft(JNS)) ;
L = StrLen(JNS.c_str()) ;
L=(jn<1?(jn<0.1?1:2):L) ;
ZL = L+1 ;
AA =AnsiString("") ;
B = AnsiString("") ;
for( ;L>0; )
{
Z = StrToInt(JNS.SubString(ZL-L,1)) ;
U = int(L/4) ;
V = L%4 ;
if( Z>0 )
{
U=(V==0?U+U-1:V+V+(U>0?7:13)) ;
AA = AA+B+F.SubString(Z+Z-1,2)+G.SubString(U,2) ;
B = "" ;
}
else
{
if(L==1)
AA=AA+"整" ;
else
{
if(V==0)
AA=AA+G.SubString(U*2-1,2);
else
AA=AA+"" ;
}
B=(V>=0?"零":"") ;
}
L=(L==4?2:L-1) ;
}
return AA ;
}
服了你了.发了这么多贴子
记得头文件是
#include <stdio.h>
ayqlj
2003-05-06
打赏
举报
回复
自已做个函数吧,不知道有多少人做过同样的函数了
rshen
2003-05-06
打赏
举报
回复
弄两个函数,应该不难解决吧。
PowerBI系列之Power Query专题
文本中提取
中文
、
英文
、数字等 处理双引号转义 列拆分详解 解决列名改变错误 解决列丢失错误 动态显示、排序和重命名列 为所有列名添加前缀 列名字母
大写
和分隔符调整 Trim标题列中的多余空格 如何处理load...
尹成Python27天入门到项目实战
堆栈函数模块引用系统模块引用与错误列表生成式的若干方法生成矩阵str与reprpython把输入输出设备当作文件处理写入
中文
写入
英文
读取
中文
读取
英文
读取错误写入错误处理文件缓存区文件读取若干种方式for循环按行读取...
Go语言官方文档学习笔记(第二季)
它的并发机制使编写程序可以轻松地从多核和联网机器中获得最大收益,而其新颖的类型系统则可以实现灵活的模块化程序构造。Go可以快速编译为机器代码,但具有垃圾回收的便利性和运行时反射的功能。它是一种快速的,...
springboot(酒店管理系统)
开发语言:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我 4.调试过程中可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! 需要加v19306446185
BP神经网络matlab实例.doc
数学模型算法
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章