/****************************以下是头文件******************************/
class CNumToHan 
{
public:
 CString Chang(CString num);
 CString ChangNum(int num);
 CNumToHan();
 virtual ~CNumToHan();

};

/****************************以下是实现文件******************************/
#include "stdafx.h"
#include "NumToHan.h"

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;
}

价格数字转换成大写汉字的一个类相关推荐

  1. C小程序-将输入的数字转换成大写汉字

    C小程序-将输入的数字转换成大写汉字C int money,count=0;int i=0;int moneys[6];//定义了输入数字的最高位数char unit[10][2]={"零& ...

  2. js将数字转换成大写汉字

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  3. 使用 C# 将数字转换成大写人民币

    贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...

  4. 小写数字转换成大写数字

    前两天看到一道题,关于小写数字转换成大写的.也就是将"1023050405"这样的数字转换为"十亿二千三百零五万零四百零五". 这个是个算法问题,其它语言也是相 ...

  5. 将(123)数字转换成大写数字(壹,贰,弎)

    此方法 将(123)数字转换成大写数字(壹,贰,弎) RMBUtils.toChineseUnit()

  6. java 数字转换成汉字_Java-String-阿拉伯数字转换成中文汉字数字

    package com.test; public class NumberUtils { private static final String[] UNITS = { "", & ...

  7. 【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】

    Java字符串应用场景:数字金额转换成汉字金额 文章目录 Java字符串应用场景:数字金额转换成汉字金额 前言 一.String简单介绍 二.字符串在开发中的应用场景 三.金额转换 3.1解题思路 3 ...

  8. C语言中把小写字符串转换成大写用函数,一个容易的将小写字符串转换成大写的函数...

    一个简单的将小写字符串转换成大写的函数 我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了. #include void uppers(char *Dest,char *Sour) { while ...

  9. php数值变成函数,PHP实现金额数字转换成大写函数

    最近做一个财务的一个功能,其中有一个地方需要将阿拉伯数字形式的金额显示成大写(老写)的汉字形式,于是有了下面的代码... function num_to_upper($num) { $d = arra ...

最新文章

  1. SVM讲的成体系的,自圆其说较好的一篇,上午没读完,KKT第二部分不等式有疑问没弄懂,复制后继续读完
  2. 日志服务器搭建之多服务器日志转发与格式化处理
  3. Android 动态刷新listview中的数据
  4. Linux文件查找工具之find “大宝剑”--转载
  5. Dataset之LSUN:LSUN数据集的简介、安装、使用方法之详细攻略
  6. php安装soap扩展
  7. swoole mysql 连接池_基于Swoole的通用连接池 - 数据库连接池
  8. 桌面虚拟化之PCoIP访问协议硬卡介绍
  9. MongoDB简单CRUD场景
  10. 电脑下载python3.5.2教程_Win10系统如何搭建Python 3.5.2开发环境
  11. error:“Unexpected namespace prefix xmlns found for tag LinearLayout”
  12. 使用docker搭建db2数据库
  13. 中级软件设计师知识点总结
  14. exdoll机器人_打造国内领先的定制化人工智能机器人品牌, EXDOLL新品惊艳亮相_TOM新闻...
  15. springboot设置session超时和session监听
  16. python 之 yield
  17. pe装kali linux,二、整合老毛桃PE + Kali Linux
  18. 51单片机GSM模块的家庭火灾报警系统设计
  19. oracle数据库dca,达梦数据库DCA考试经历
  20. YXCMS靶场实验报告

热门文章

  1. 微信小游戏Banner广告
  2. php导出大数据scv
  3. Android仿腾讯手机管家实现桌面悬浮窗小火箭发射的动画效果
  4. U盘杀毒后文件不见/找回
  5. 【深度学习】BioBERT文章翻译及个人感悟
  6. SpringBoot后台java下载文件及注意的地方
  7. lsdyna如何设置set中的node_list_如何理解vue的双向绑定
  8. USB无法debug调试:because an app is obscuring a permission request settings cab't verify your resonse
  9. 想拿高工资?Java面试资料集合,附赠课程+题库
  10. Android熄屏与亮屏控制