using System;

namespace Test.Com
{
 /// <summary>
 /// 功能:字符串处理函数集
 /// </summary>
 public class DealString
 {
  #region 私有成员
  /// <summary>
  /// 输入字符串
  /// </summary>
  private string inputString=null;
  /// <summary>
  /// 输出字符串
  /// </summary>
  private string outString=null;
  /// <summary>
  /// 提示信息
  /// </summary>
  private string noteMessage=null;
  #endregion

#region 公共属性
  /// <summary>
  /// 输入字符串
  /// </summary>
  public string InputString
  {
   get{return inputString;}
   set{inputString=value;}
  }
  /// <summary>
  /// 输出字符串
  /// </summary>
  public string OutString
  {
   get{return outString;}
   set{outString=value;}
  }
  /// <summary>
  /// 提示信息
  /// </summary>
  public string NoteMessage
  {
   get{return noteMessage;}
   set{noteMessage=value;}
  }
  #endregion
 
  #region 构造函数
  public DealString()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  #endregion

#region 公共方法
  public void ConvertToChineseNum()
  {
   string numList="零壹贰叁肆伍陆柒捌玖";
   string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
   double number=0;
   string tempOutString=null;

try
   {
    number=double.Parse(this.inputString);
   }
   catch
   {
    this.noteMessage="传入参数非数字!";
    return;
   }
  
   if(number>9999999999999.99)
    this.noteMessage="超出范围的人民币值";

//将小数转化为整数字符串
   string tempNumberString=Convert.ToInt64(number*100).ToString();
   int tempNmberLength=tempNumberString.Length;
   int i=0;
   while(i<tempNmberLength)
   {
    int oneNumber=Int32.Parse(tempNumberString.Substring(i,1));
    string oneNumberChar=numList.Substring(oneNumber,1);
    string oneNumberUnit=rmbList.Substring(tempNmberLength-i-1,1);
    if(oneNumberChar!="零")
     tempOutString+=oneNumberChar+oneNumberUnit;
    else
    {
     if(oneNumberUnit=="亿"||oneNumberUnit=="万"||oneNumberUnit=="元"||oneNumberUnit=="零")
     {
      while (tempOutString.EndsWith("零"))
      {
       tempOutString=tempOutString.Substring(0,tempOutString.Length-1);
      }

}
     if(oneNumberUnit=="亿"||(oneNumberUnit=="万"&&!tempOutString.EndsWith("亿"))||oneNumberUnit=="元")
     {
      tempOutString+=oneNumberUnit;
     }
     else
     {
      bool tempEnd=tempOutString.EndsWith("亿");
      bool zeroEnd=tempOutString.EndsWith("零");
      if(tempOutString.Length>1)
      {
       bool zeroStart=tempOutString.Substring(tempOutString.Length-2,2).StartsWith("零");
       if(!zeroEnd&&(zeroStart||!tempEnd))
        tempOutString+=oneNumberChar;
      }
      else
      {
       if(!zeroEnd&&!tempEnd)
        tempOutString+=oneNumberChar;
      }
     }
    }
    i+=1;
   }

while (tempOutString.EndsWith("零"))
   {
    tempOutString=tempOutString.Substring(0,tempOutString.Length-1);
   }

while(tempOutString.EndsWith("元"))
   {
    tempOutString=tempOutString+"整";
   }

this.outString=tempOutString;

}
  #endregion
 }
}

转载于:https://www.cnblogs.com/hzuIT/articles/682812.html

将人民币的数字表示转化成大写表示(C#版)相关推荐

  1. 如何将数字123转化成大写的文字 一百二十三 或 一二三?

    相信大家在前端开发过程中经常遇到需要显示章目的情况,例如: 在 Vue 中我们可以用 v-for 处理列表数据显示这样的列表,但是 我们只能通过 Index 获得 [0,1,2,3,4] ,显然我们需 ...

  2. 将阿拉伯数字转化成大写的人民币数字

    将阿拉伯数字转化成大写的人民币数字 public  String getNumberToRMB(String m) ... {      String num = "零壹贰叁肆伍陆柒捌玖&q ...

  3. 把数字小写转换成大写,把数字转化成英文

    把数字小写转换成大写   方法一,使用系统提供的函数,但是不满足大陆财务的要求.     方法二:使用下面的函数. 英文: static str Num2EngStr(real realNum,boo ...

  4. 将整型数字转化成大写格式

    将整型数字转化成大写格式 将整型数字转化成大写格式 我们日常报表的打印,单据打印,借据.收据打印等等操作都需要用到将金额装换成大写,防止交易双方通过修改单据数字,因而我们的信息管理系统就把账单的金额转 ...

  5. C语言自学路之将小写数字完美转换成大写数字

    C语言自学路之将小写数字完美转换成大写数字 # define N 6:6位及以内的整数(小数点后不计) PS:中间两条测试数组正确性的可以忽视,我只是每敲一点都喜欢运行测试一下- #include & ...

  6. java大写转化小写的同时小写转化成大写的方法

    /*进行小写转化成大写,大写转化成小写*/ public class Text {public static void main(String[] arges) {String str = " ...

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

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

  8. excel小写转大写公式_EXCEL中文小写数字怎么转化成阿拉伯数字呢?

    把阿拉伯数字转化成中文小写数字,我们都知道,通过单元格格式设置就可以实现,如下图: 但是上面的转化有时并不能满足我们的需求,比如,我们需要把13转化成十三,而不是一十三,这时我们该怎么办呢? 下面我们 ...

  9. php 把数字转化为大写中文(完善版)

    *** 将数值金额转换为中文大写金额* @param $amount float 金额(支持到分)* @param $type int 补整类型,0:到角补整;1:到元补整* @return mixe ...

最新文章

  1. 普华永道报告:区块链不只是比特币!将改变这8大领域|附下载
  2. 蓝桥杯-01字串(java)
  3. CloudCC CRM探讨如何建立完善的服务体系
  4. Linux系统中解压缩指令汇总
  5. 简单讲述一下Intent的传值过程
  6. json转python_将“true”(JSON)转换为Python等效的“True”
  7. 【MySQL】MySQL负载均衡常见方法
  8. 地产IT人福利:帆软地产BI解决方案全解析
  9. buck电路matlab,matlab buck电路仿真
  10. 如何在 Linux 中使用 AppImage
  11. Lucene和ES的关系
  12. 【渝粤教育】 广东开放大学21秋期末考试法律文书10684k2
  13. Python 随笔之Redis
  14. 基于 Docker 的几种常用 CentOS7 镜像
  15. Java实现杨辉三角形
  16. SQL中计算字符串的长度函数
  17. 自制StartUp宏病毒专杀小工具
  18. Unity制作UI翻页动画
  19. 五、python 缺失值处理(Imputation)
  20. Putty 下载安装

热门文章

  1. c 结构体的简单封装1
  2. 网络中典型协议--(DNS,输入url后, 发生的事情. ,ICMP,NAT)
  3. 文件操作(解密加密)
  4. 网络编程套接字API
  5. Java进阶面试资料无偿分享!真香系列
  6. readonly的用法
  7. MySQL数据库的回滚失败(JAVA)
  8. Tengine HTTPS原理解析、实践与调试【转】
  9. MVC与三层架构区别
  10. ImageView缩放选项