⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numtohan.cpp

📁 通过输入阿拉伯 数字 ,自动转换数字为中文汉字大写数字,并按照原数字顺序给予排列!
💻 CPP
字号:
// NumToHan.cpp: implementation of the CNumToHan class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "NumToHan.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CNumToHan::CNumToHan()
{

}

CNumToHan::~CNumToHan()
{

}
CString CNumToHan::ChangNum(int num)
{
	if(num<0||num>9)return "错";
	CString str;
	str.Format("%d",num);
	CString s="0123456789";
	CString h[10]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	return h[s.Find(str,0)];
}



CString CNumToHan::Chang(CString num)
{
	CString str,str1;
	CString m_cUint[16]={"毫","厘","分","角","元","拾","佰","仟","万",
		"拾","佰","仟","亿","拾","佰","仟"};
	int m_iIn;
	int m_iLoc;//小数点位置
	int m_iZero=0;
	bool m_bZeroEnd=false;
	if(num.Find(".",0)==-1)
		m_iLoc=num.GetLength();
	else
		m_iLoc=num.Find(".",0);
	
	for(int i=0;i<num.GetLength();i++)
	{
		if(num.GetAt(i)=='.')continue;
		if(num.GetAt(i)=='0')
		{
			if(i==0)continue;
			m_iZero++;
			if(num.GetLength()==(i+1))
				m_bZeroEnd=true;
		}
		else
			if(m_iZero>0)m_bZeroEnd=true;
		str=num.GetAt(i);
		m_iIn=atoi(str);

		if(m_iZero<=0||m_bZeroEnd)
		{
			if(m_iZero>0&&m_iIn>0){str1+="零";m_iZero=0;m_bZeroEnd=false;}
		str1+=ChangNum(m_iIn);
		if(m_iZero>0&&m_iIn==0){str1=str1.Left(str1.GetLength()-2);m_iZero=0;}
		str1+=m_cUint[m_iLoc+3];
		}
		if((m_iLoc==9||m_iLoc==5)&&m_iZero>0)
		{
			bool m_b=true;
			if((str1.Right(2)=="亿"&&m_cUint[m_iLoc+3]=="万"))
			m_b=false;
			
			if(m_b)str1+=m_cUint[m_iLoc+3];
			m_iZero=0;
		}

		m_iLoc--;
	}
	return str1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -