当前位置:  编程技术>.net/c#/asp.net

c# 数字转换中文字符的代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  c#数字转换为中文字符。 代码示例: /// 数字转换为中文字符 /// site http://www. using System; using System.Collections.Generic; using System.Text; namespace CW {    public class Cash    {      private static string MoneyNum = "零一二三四五六七八九"; ...

c#数字转换为中文字符。

代码示例:

/// 数字转换为中文字符
/// site http://www.
using System;
using System.Collections.Generic;
using System.Text;

namespace CW
{
   public class Cash
   {
     private static string MoneyNum = "零一二三四五六七八九";
     private static string MoneyUnit = "十百千万十百千亿";
     private static string CashUnit = "元角分整";
     private static string[] BeforeReplace = new string[] {  MoneyNum[0].ToString() + MoneyNum[0].ToString(),
                                                              MoneyUnit[7].ToString() + MoneyNum[0].ToString() + MoneyUnit[3].ToString() ,
                                                              MoneyNum[0].ToString() + MoneyUnit[3].ToString(),
                                                              MoneyNum[0].ToString() + MoneyUnit[7].ToString(),
                                                              MoneyUnit[7].ToString() + MoneyUnit[3].ToString(),
                                                              MoneyNum[0].ToString() + MoneyNum[0].ToString(),
                                                              MoneyNum[0].ToString() + CashUnit[1].ToString() + MoneyNum[0].ToString() + CashUnit[2].ToString(),
                                                              MoneyNum[0].ToString() + CashUnit[2].ToString()
                                                         };
    private static string[] AfterReplace = new string[] {  MoneyNum[0].ToString(),
                                                                MoneyUnit[7].ToString() + MoneyNum[0].ToString(),
                                                               MoneyUnit[3].ToString() + MoneyNum[0].ToString(),
                                                                MoneyUnit[7].ToString() + MoneyNum[0].ToString(),
                                                                MoneyUnit[7].ToString() + MoneyNum[0].ToString(),
                                                                MoneyNum[0].ToString(),
                                                              String.Empty,
                                                                String.Empty
                                                             };

 /**////
 /// 字符串替换方法,另外一种是以 4 个数字为基础的递归方法
/// Create By HJ 2007-10-21
///
3///
///
public static string getCash(decimal moneyNum)
{
     string intNum, point;
    /**////取整数部分
   intNum = Convert.ToString(Math.Floor(moneyNum));      
    /**////取小数部分
    point = Convert.ToString(Math.Floor(moneyNum * 100)); 
 point = point.Substring(point.Length - 2);

 /**////计算整数部分
   for (int i = 0; i < MoneyNum.Length; i++)
  {
     intNum = intNum.Replace(i.ToString(), MoneyNum[i].ToString());
 }
  int intNumLength = intNum.Length;
          for (int i = intNumLength - 1; i > 0; i--)
         {   /**////根据位数把单位加上
         ///如果是零则不加单位,但是 万  和  亿 需要加上
              if (intNum[i - 1] == MoneyNum[0] && (intNumLength - i + 7) % 8 != 3 && (intNumLength - i + 7) % 8 != 7) continue;
              intNum = intNum.Insert(i, MoneyUnit[(intNumLength - i + 7) % 8].ToString());
           }

         /**////加上 角 和 分 的单位
        intNum += CashUnit[0].ToString() + MoneyNum.Substring(Convert.ToInt16(point[0].ToString()), 1) + CashUnit[1].ToString() + MoneyNum.Substring(Convert.ToInt16(point[1].ToString()), 1) + CashUnit[2].ToString();
      /**////替换  零零 -> 零  亿零万  ->  亿零,零万  ->  万零,零亿 -> 亿零,亿万 -> 亿零,零角零分 - > "",零分 - > "",零零 -> 零,再调用一次,确保 亿零万 替换后的情况
         for (int i = 0; i < BeforeReplace.Length; i++)
         {
               while(intNum.IndexOf(BeforeReplace[i])>-1)
               {
                  intNum = intNum.Replace(BeforeReplace[i], AfterReplace[i]);
               }
            }
          /**////最后的 零 去掉
         if (intNum.EndsWith(MoneyNum[0].ToString())) intNum = intNum.Substring(0, intNum.Length - 1);

          return intNum + CashUnit[3].ToString();
       }
   }
}


    
 
 

您可能感兴趣的文章:

  • c#判断输入内容是否数字的代码
  • c#实现TextBox只允许输入数字
  • C# 验证码一例(随机数字加字母)
  • C#实现将千分位字符串转换成数字的方法
  • c#判断输入的是不是数字的小例子
  • C# 正则判断一个数字的格式是否有逗号的代码
  • C#实现在两个数字之间生成随机数的方法
  • c#中判断字符串是不是数字或字母的方法
  • C# WinForm窗体编程中处理数字的正确操作方法
  • C#实现根据数字序号输出星期几的简单实例
  • C# 大数字运算的小例子
  • C# 判断字符串第一位是否为数字或中文的代码
  • C# 判断字符串第一位是否为数字
  • C# 判断是否为数字的方法二则
  • C#实现大数字运算的实例代码
  • C# 实现只能输入数字的文本框
  • c# 正则表达式 验证数字的方法
  • C#把数字转换成大写金额的代码实例
  • c# 验证数字和日期的方法与实现代码
  • C# 将阿拉伯数字转换为大写中文的代码
  • rh9中xmms的音乐文件列表用中文字体后,为什么数字序号和文件的时间长度都会强制变成中文的
  • 利用正则表达式(只录入中文,数字,英文)
  • php+正则将字符串中的字母数字和中文分割
  • socket读取中文数字混合字符出错
  • 急救:如何在jsp中将阿拉伯数字转换成中文大写,如:'1228008.98' 转换为 '壹佰贰拾贰万扒仟零扒圆玖角扒分'各位大虾给看看,一定给分!!
  • 阿拉伯数字转大写中文_财务常用sql存储过程
  • 使用正则限制input框只能输入数字/英文/中文等等
  • python中将阿拉伯数字转换成中文的实现代码
  • NumberToUpper数字转中文详解
  • 使用C#实现阿拉伯数字到大写中文的转换
  • sql server 提取数字、英文与中文的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 请教:Java 中数字字符串转化为数字的问题
  • java实现判断字符串是否全是数字的四种方法代码举例
  • jquery禁止输入数字以外的字符的示例(纯数字验证码)
  • 请问,用c如何将一串数字字符转换成数字
  • php生成随机字符串(自定义纯数字、纯字母或数字字母混合)
  • shell怎么搜索文件中指定字符串,然后将该字符串后面的数字输出
  • c语言中怎样从字母和数字组成的字符串中提取数字?
  • 请问各位。。。如何判定从键盘上输入的是字符串还是数字呢???
  • 如何在java中将任意字符转化为数字
  • 请问:linux下C/C++编程,怎样把含有中英文及数字其他字符的字符串,转化成utf-8编码,又怎样将其转换回来。iconv好像不支持混合?
  • 如何将数字字符串转成数字型的如:"123" 123
  • 用sql获取某字符串中的数字部分的语句
  • 用LINUX串口发送数字和字符串遇到问题
  • 请问如何判断一串字符是数字
  • Java判断字符串为空、字符串是否为数字
  • LINUX 开发C程序 怎么把数字转换成字符串
  • java中如何将数字转化为字符串并且不足位数补0
  • 字符串怎样转化为数字?
  • 关于boost数字转字符串的问题
  • 脚本如何在字符串中提取数字
  • 数字签名,数字签名,数字签名!!
  • asp正则表达式匹配数字$数字$数字$
  • 高手请赐招:数字签名与数字认证的区别,尤其是概念上的区别。谢谢!
  • 请问linux用户名能否用数字?怎么才能用数字开头呢?
  • awk的数字运算中,数字变量的值的范围多少?
  • 对applet坐数字签名后,如果重新用jar对applet打包,需要重新做applet数字签名吗?
  • 只能是字母或数字或者是字母和数字的组合的正则previousSibling
  • 请问Java中如何在控制台一行内输入n个数字,然后再在一行内输出这些数字
  • sql server 字段 全角数字转半角数字的代码分享
  • 如何让IE认识applet所带的数字签名,而不是让证书仓库认识这个带数字签名的applet,就是说不装jdk也可以在IE里面使用带有签名的applet,详情请进


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3