社区
图形处理/算法
帖子详情
100分求将阿拉伯数字转化为大写数字的类
xyr1981
2003-10-18 11:47:43
吃过中饭结贴!
...全文
46
2
打赏
收藏
100分求将阿拉伯数字转化为大写数字的类
吃过中饭结贴!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xyr1981
2003-10-18
打赏
举报
回复
合用!Thanks
taogx
2003-10-18
打赏
举报
回复
我从VCKbase上面的来的
CgStrtoCnUpper.h
// CgStrtoCnUpper.h: interface for the CCgStrtoCnUpper class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CGSTRTOCNUPPER_H__6C016E06_DDAE_11D7_A10E_CAEB62ABF026__INCLUDED_)
#define AFX_CGSTRTOCNUPPER_H__6C016E06_DDAE_11D7_A10E_CAEB62ABF026__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <string>
#include <iostream>
using namespace std;
class CCgStrtoCnUpper
{
public:
void CreateOutputString();
void SeperateOriginString();
bool ExaminateOrigin();
CCgStrtoCnUpper(string strInput);
virtual ~CCgStrtoCnUpper();
bool CanBeCg()
{
return m_bCgable;
};
string GetOutputString()
{
return m_strOutput;
};
private:
string GetCnWeishu(int nInput);
string GetCnUpper(string strInput);
bool ExaminateDotCount();
string TrimSpace(string strInput);
bool ExaminateOneChar(string strInput);
string m_strOrigin;
string m_strFirst;
string m_strSecond;
bool m_bCgable;
string m_strOutput;
};
#endif // !defined(AFX_CGSTRTOCNUPPER_H__6C016E06_DDAE_11D7_A10E_CAEB62ABF026__INCLUDED_)
CgStrtoCnUpper.cpp
// CgStrtoCnUpper.cpp: implementation of the CCgStrtoCnUpper class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CgStrtoCnUpper.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCgStrtoCnUpper::CCgStrtoCnUpper(string strInput)
{
m_strOrigin=TrimSpace(strInput);
m_bCgable=true;
m_bCgable=ExaminateDotCount()*ExaminateOrigin();
SeperateOriginString();
m_strOutput="";
CreateOutputString();
}
CCgStrtoCnUpper::~CCgStrtoCnUpper()
{
}
bool CCgStrtoCnUpper::ExaminateOrigin()
{
bool bRetval=true;
int n=m_strOrigin.length();
string strtmp;
for(int i=0;i<n;i++)
{
strtmp=m_strOrigin.at(i);
bRetval*=ExaminateOneChar(strtmp);
}
return bRetval;
}
bool CCgStrtoCnUpper::ExaminateOneChar(string strInput)
{
if(strInput=="0") return true;
if(strInput=="1") return true;
if(strInput=="2") return true;
if(strInput=="3") return true;
if(strInput=="4") return true;
if(strInput=="5") return true;
if(strInput=="6") return true;
if(strInput=="7") return true;
if(strInput=="8") return true;
if(strInput=="9") return true;
if(strInput==".") return true;
return false;
}
string CCgStrtoCnUpper::TrimSpace(string strInput)
{
string strretval="";
string strtmp;
int n=strInput.length();
for(int i=0;i<n;i++)
{
strtmp=strInput.at(i);
if(strtmp!=" " && strtmp!=",")
{
strretval+=strtmp;
}
}
return strretval;
}
void CCgStrtoCnUpper::SeperateOriginString()
{
if(!m_bCgable)
return;
int i;
int n=m_strOrigin.length();
i=m_strOrigin.find_first_of(".",0);
if(i!=-1)
{
m_strFirst=m_strOrigin.substr(0,i);
m_strSecond=m_strOrigin.substr(i+1,n-1-i);
}
else
{
m_strFirst=m_strOrigin;
m_strSecond="";
}
}
bool CCgStrtoCnUpper::ExaminateDotCount()
{
int n=m_strOrigin.length();
string strtmp;
int DotCount=0;
for(int i=0;i<n;i++)
{
strtmp=m_strOrigin.at(i);
if(strtmp==".")
{
DotCount++;
}
}
if(DotCount<2)
return true;
else
return false;
}
void CCgStrtoCnUpper::CreateOutputString()
{
int i,n;
//1
n=m_strFirst.length();
string strtmp;
for(i=0;i<n;i++)
{
strtmp=m_strFirst.at(i);
if(GetCnUpper(strtmp)!="零")
{
m_strOutput+=GetCnUpper(strtmp);
m_strOutput+=GetCnWeishu(n-i-1);
}
}
if(m_strSecond=="")
{
m_strOutput+="圆整";
return;
}
m_strOutput+="点";
//2
n=m_strSecond.length();
for(i=0;i<n;i++)
{
strtmp=m_strSecond.at(i);
m_strOutput+=GetCnUpper(strtmp);
}
}
string CCgStrtoCnUpper::GetCnUpper(string strInput)
{
if(strInput=="0") return "零";
if(strInput=="1") return "壹";
if(strInput=="2") return "贰";
if(strInput=="3") return "叁";
if(strInput=="4") return "肆";
if(strInput=="5") return "伍";
if(strInput=="6") return "陆";
if(strInput=="7") return "柒";
if(strInput=="8") return "捌";
if(strInput=="9") return "玖";
return "";
}
string CCgStrtoCnUpper::GetCnWeishu(int nInput)
{
if(nInput==0) return "";
if(nInput==1) return "拾";
if(nInput==2) return "佰";
if(nInput==3) return "仟";
if(nInput==4) return "萬";
if(nInput<8 && nInput>4)
{
return (GetCnWeishu(nInput-4)+"萬");
}
if(nInput==8) return "亿";
if(nInput>8)
{
return (GetCnWeishu(nInput-8)+"亿");
}
}
python程序设计 将
阿拉伯
数字
转换为
大写
数字
将
阿拉伯
数字
转换为
大写
数字
,主要解决小数点问题,
将
阿拉伯
数字
转换为汉字
数字
或者汉字
大写
金额
1、该dll能将
阿拉伯
数字
转换为汉字
数字
或者中文
大写
金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...
java
阿拉伯
数字
转化
为
大写
java程序代码,
阿拉伯
数字
转化
为
大写
java
阿拉伯
数字
转化
中文
大写
java
阿拉伯
数字
转化
中文
大写
。包括小数点的操作。是
转化
的源代码。可以参考这修改出所需格式。
将
阿拉伯
数字
转换为
大写
可以将
阿拉伯
数字
转换为
大写
,
数字
位数大于12位时不转换
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章