将人民币数字转换为中文大写

原创 2004年06月28日 11:09:00

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

JS数字转换为人民币大写

 /**将数字转换成大写人民币**/ function cmycurd(num){  //转成人民币大写金额形式   var str1 = '零壹贰叁肆伍陆柒捌玖';  //0-9所对应...
  • yangshijin1988
  • yangshijin1988
  • 2014年06月26日 17:59
  • 420

java实现人民币数字转换中文大写的工具实例代码demo分享

原文:java实现人民币数字转换中文大写的工具实例代码demo分享 http://www.zuidaima.com/share/1816208858221568.htm 刚好在项目里面用到...
  • yaerfeng
  • yaerfeng
  • 2016年07月08日 09:36
  • 1318

将数字转为中文金额的大写方式(C++版)

/**   * 程序目的:   *   从命令行接收一个数,并将其转化为中文金额的大写方式(C++版)   * 例如 123.45 --> 壹佰贰拾叁元肆角伍分   * @author Lov...
  • u010944926
  • u010944926
  • 2014年03月08日 15:57
  • 3244

C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码

摘要防狼~~C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码
  • blacknet99
  • blacknet99
  • 2015年01月20日 18:51
  • 672

java实现人民币数字转换成中文

public class test {     /**      * 人民币大写单位制      */     private static HashM...
  • liuyuanqiang2010
  • liuyuanqiang2010
  • 2017年07月05日 15:37
  • 196

C#,数字转人民币大写方法

using System; namespace Test {     /**////      /// Rmb 的摘要说明。     ///      public class Rmb     { ...
  • seapen
  • seapen
  • 2007年02月11日 16:19
  • 5436

java实现阿拉伯数字转人民币大写(精确到分)

这是一个将阿拉伯数字转人民币大写的工具类, 精确到人民币大写分package com.client; import java.math.BigDecimal;/** * Class Descript...
  • u010725501
  • u010725501
  • 2016年09月09日 21:50
  • 198

java 中文大写数字 转换成 阿拉伯数字

import java.util.HashMap; import java.util.Map; /** * a class to deal with Chinese numeric. * ...
  • lsygood
  • lsygood
  • 2017年05月22日 15:50
  • 697

Java实现阿拉伯数字转换成中文大写数字,以及中文大写数字到阿拉伯数字的转换。

学习王晓华老师的《算法的乐趣》一书中第四章之后,用Java重写并实现这一功能。 该文章是在学习完该章之后的一个学习总结,以供自己复习使用。 由于现在刚开始学习Java,为了熟悉Java的变成规范,...
  • cht_LOV_yl
  • cht_LOV_yl
  • 2016年10月21日 16:22
  • 4633

js将数字金额转换为大写人民币

今天换算律师打官司金额,用到了小写金额转化为大写汉字的问题,这里把具体思路分析一下 1、首先判断输入数值正负问题,     2、其次有小数点部分需要处理,将数值每次乘以10进行拆分,乘10——%...
  • qq_35240823
  • qq_35240823
  • 2017年11月23日 19:43
  • 162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将人民币数字转换为中文大写
举报原因:
原因补充:

(最多只允许输入30个字)