MFC编写的人民币大小写转换
最近在学习MFC,编写了个金额由小写到大写的转换,全部代码如下:
/************************************************************************/
/* 对阿拉伯数组转换成中文数字 */
/************************************************************************/
CString CToChineseDlg::ToChineseLetter(CString strSourceLetter)
{
strSourceLetter.Replace(L"0", L"零");
strSourceLetter.Replace(L"1", L"壹");
strSourceLetter.Replace(L"2", L"贰");
strSourceLetter.Replace(L"3", L"叁");
strSourceLetter.Replace(L"4", L"肆");
strSourceLetter.Replace(L"5", L"伍");
strSourceLetter.Replace(L"6", L"陆");
strSourceLetter.Replace(L"7", L"柒");
strSourceLetter.Replace(L"8", L"捌");
strSourceLetter.Replace(L"9", L"玖");
return strSourceLetter;
}
void CToChineseDlg::OnBnClickedButton1()
{
// 先判断是否有小数点
CString strSource, strDotAfter, strResult;
GetDlgItem(IDC_EDIT_SOURCE)->GetWindowText(strSource);
strDotAfter = this->GetDotAfterLength(strSource);
int iAllLength = strSource.GetLength();
int iDotAfterLength = strDotAfter.GetLength();
if(iDotAfterLength == 0)
{
if(iAllLength > 12)
{
MessageBox(L"输入的数字过长,不要超过12位", L"提示");
}
else
{
strResult = this->ChangeMoney(strSource);
GetDlgItem(IDC_EDIT_RESULT)->SetWindowText(strResult);
}
}
else
{
if(iAllLength - iDotAfterLength - 1 > 12)
{
MessageBox(L"输入的数字整数部分过长,不要超过12位", L"提示");
}
else if(iDotAfterLength > 2)
{
MessageBox(L"输入的数字小数点后面过长,不要超过2位", L"提示");
}
else
{
CString strDotBefore = strSource.Left(iAllLength - iDotAfterLength - 1);
strResult = this->ChangeMoney(strDotBefore);
// 再来计算小数点后的,这个简单不需要在封装函数了
for (int i = 0; i < iDotAfterLength; i++)
{
CString strUnit("");
CString strTemp = strDotAfter.Left(1);
strTemp = this->ToChineseLetter(strTemp);
strDotAfter = strDotAfter.Mid(1);
switch (i)
{
case 0:
strUnit = "角";break;
case 1:
strUnit = "分";break;
}
strResult += strTemp + strUnit;
}
GetDlgItem(IDC_EDIT_RESULT)->SetWindowText(strResult);
}
}
}
/************************************************************************/
/* 得到小数点后的字符串 */
/************************************************************************/
CString CToChineseDlg::GetDotAfterLength(CString strSource)
{
int iDotIndex = strSource.Find('.');
if(iDotIndex > -1)
{
return strSource.Mid(iDotIndex + 1);
}
return CString("");
}
/************************************************************************/
/* 转换 */
/************************************************************************/
CString CToChineseDlg::ChangeMoney(CString strSource)
{
CString strResult("");
int iLength = strSource.GetLength();
for (int i = 0; i < iLength; i++)
{
CString strUnit("");
// 获取右边第一个字符
CString strTemp = strSource.Right(1);
strSource = strSource.Left(strSource.GetLength() - 1);
// 得到中文
strTemp = this->ToChineseLetter(strTemp);
// 得到单位
switch (i)
{
case 0:
strUnit = "元";break;
case 1:
case 5:
case 9:
strUnit = "拾";break;
case 2:
case 6:
case 10:
strUnit = "百";break;
case 3:
case 7:
case 11:
strUnit = "千";break;
case 4:
strUnit = "万";break;
case 8:
strUnit = "亿";break;
}
// 拼接起来
strResult = strTemp + strUnit + strResult;
}
return strResult;
}
效果图如下:
一下效果图是别处使用的。。
MFC编写的人民币大小写转换相关推荐
- JavaScript实现人民币大小写转换
当使用支票或者签署合同时,需要用到大写人民币,常用的中文大写包括零.壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.本文介绍下如何使用JavaScript实现将阿拉伯数字的人民币转换成大写. ...
- 人民币大小写转换格式
<?php //****人民币大小写转换格式**** function ChangeToRMB($Val) { $str=array(); $str[0]="零"; $str ...
- 超强技巧分享,如何将人民币大小写转换?
当我们在制作财务表格的时候,需要将金额的大写跟小写进行转换,如果要一个一个手打出来的话,那就太浪费时间了,一两个数额还好,如果一整个表格的数额,那就不得了了,那要花费多少时间才能将小写金额转换成大写金 ...
- Java实现人民币大小写转换
思路和具体方法都在注释中说明 package ClassicArithmetic;import java.util.Scanner;/** @author:LOHAS翀* @time:2019/11/ ...
- JAVAScript实现人民币大小写转换算法
大家好,我是梦辛工作室的灵,最近在写一个人民币大小写转换的工具,就把数字转换为大写中文 界面如下: 这样就很清楚了,做财务软件的时候应该会经常用到: 转换代码如下(是从右向左读): function ...
- Oracle存储过程实现人民币大小写转换
注意:当报如下错误时,是因为存储过程中定义的变量值太小,加大它的范围即可. Caused by: java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 : ...
- c语言人民币大小写转换,人民币大小写转换函数.xls
人民币大小写转换函数.xls Sheet3 Sheet1 IF(A1=0,"",IF(ABS(A1)<0.995,"",TEXT(INT(ROUND(AB ...
- java人民币大小写转换_人民币大小写转换
usingSystem;usingSystem.Text;usingSystem.Text.R using System; using System.Text; using System.Text.R ...
- 【课程设计|MFC】人民币大小写转换(含课程报告+源码)
目录 简介 目 录 一.课程设计目的 二.课程设计内容与要求 三.开发环境简介 四.小组成员分工 五.系统需求分析 六.系统设计 七.系统实现及测试 八.课程设计心得体会 项目地址 结语 简介 Hel ...
最新文章
- 关于在web项目中实现本地打印
- Eclipse删除文件的恢复(转)
- 演示:标准ACL的配置、及使用技巧、和相关局限
- iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面
- ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on yo
- LoadRunner中对图表的分析说明
- go语言快速开发入门示例
- MySQL 无法连接
- P3620-[APIO/CTSC2007]数据备份【贪心,堆,链表】
- 怎么改变表单option标签直接字体大小_不起眼却非常重要的表单交互
- linux编译bzip2,linux bzip2 命令详解
- Qt工作笔记-获取选中的文件名(lastIndexOf的使用)
- 【转】Emacs -- 自动补齐
- Arc076_E Connected?
- PyQT多线程串口 QtDesigner
- matplotlib绘制鼠标的十字光标(自定义方式,官方实例)
- 服务器性能监控之WMI
- Redis 源码分析跳跃表(skiplist)
- 网络传输介质和常见的设备
- HFC网、FTTx技术、PON