C#实现的【阿拉伯数字转换成中文大写金额】代码

C#实现数字转中文大写功能教程 在C#中,Dictionary是一个集合类,用于存储键值对(key-value pairs)。每个键值对都被称作一个元素,而且每个键都是唯一的。字典允许您使用键来快速检索对应的值。它是泛型(Generic)集合,可以指定存储的数据类型,使得类型安全和效率得以兼顾。字典的常用操作包括添加、删除和查找元素。添加元素使用Add()方法或索引器。删除元素可以使用Remove()方法。查找元素同样可以使用索引器,如果键不存在,则返回默认值。下面是基本操作的代码示例:// 创建并初始化字典。 阅读详情
 

以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知)。

代码的主调函数为ConvertSum,它的参数是string类型的数字字符串。在ASP.NET中调用方式如下:
Label1.Text=ConvertSum("数字字符串");

其代码如下:

 

  //作者:fanz2000
  //Email:fanz2000@sohu.com
  ///


  /// 转换数字金额主函数(包括小数)
  ///

  /// 数字字符串
  /// 转换成中文大写后的字符串或者出错信息提示字符串
  public string ConvertSum(string str)
  {
   if(!IsPositveDecimal(str))
   return "输入的不是正数字!";
   if(Double.Parse(str)>999999999999.99)
   return "数字太大,无法换算,请输入一万亿元以下的金额";
   char[] ch=new char[1];
   ch[0]='.'; //小数点
   string[] splitstr=null; //定义按小数点分割后的字符串数组
   splitstr=str.Split(ch[0]);//按小数点分割字符串
   if(splitstr.Length==1) //只有整数部分
    return ConvertData(str)+"圆整";
   else //有小数部分
   {
    string rstr;
    rstr=ConvertData(splitstr[0])+"圆";//转换整数部分
    rstr+=ConvertXiaoShu(splitstr[1]);//转换小数部分
    return rstr;
   }
  
  }
  ///
  /// 判断是否是正数字字符串
  ///

  /// 判断字符串
  /// 如果是数字,返回true,否则返回false
  public bool IsPositveDecimal(string str)
  {
   Decimal d;
   try
   {
    d=Decimal.Parse(str);
   
   }
   catch(Exception)
   {
   return false;
   }
   if(d>0)
  return true;
  else
  return false;
  }
  ///
  /// 转换数字(整数)
  ///

  /// 需要转换的整数数字字符串
  /// 转换成中文大写后的字符串
  public string ConvertData(string str)
  {
   string tmpstr="";
   string rstr="";
   int strlen=str.Length;
   if (strlen<=4)//数字长度小于四位
   {
    rstr= ConvertDigit(str);
   
   }
   else
   {
   
    if (strlen<=8)//数字长度大于四位,小于八位
    {
     tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字
     rstr=ConvertDigit(tmpstr);//转换最后四位数字
     tmpstr=str.Substring(0,strlen-4);//截取其余数字
     //将两次转换的数字加上萬后相连接
     rstr= String.Concat(ConvertDigit(tmpstr)+"萬",rstr);
     rstr=rstr.Replace("零萬","萬");
     rstr=rstr.Replace("零零","零");
  
    } 
    else
     if(strlen<=12)//数字长度大于八位,小于十二位
    {
     tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字
     rstr=ConvertDigit(tmpstr);//转换最后四位数字
     tmpstr=str.Substring(strlen-8,4);//再截取四位数字
     rstr= String.Concat(ConvertDigit(tmpstr)+"萬",rstr);
     tmpstr=str.Substring(0,strlen-8);
     rstr= String.Concat(ConvertDigit(tmpstr)+"億",rstr);
     rstr=rstr.Replace("零億","億");
     rstr=rstr.Replace("零萬","零");
     rstr=rstr.Replace("零零","零");
     rstr=rstr.Replace("零零","零");
    }
   }
   strlen=rstr.Length;
   if (strlen>=2)
   {
    switch(rstr.Substring(strlen-2,2))
    {
     case "佰零":rstr=rstr.Substring(0,strlen-2)+"佰"; break;
     case "仟零":rstr=rstr.Substring(0,strlen-2)+"仟"; break;
     case "萬零":rstr=rstr.Substring(0,strlen-2)+"萬";break;
     case "億零":rstr=rstr.Substring(0,strlen-2)+"億";break;
   
    }
   }

   return rstr;
  }
  ///


  /// 转换数字(小数部分)
  ///

  /// 需要转换的小数部分数字字符串
  /// 转换成中文大写后的字符串
  public string ConvertXiaoShu(string str)
  {
   int strlen=str.Length ;
   string rstr;
   if(strlen==1)
   {
    rstr=ConvertChinese(str)+"角";
    return  rstr;
   }
   else
   {
    string tmpstr=str.Substring(0,1);
    rstr=ConvertChinese(tmpstr)+"角";
    tmpstr=str.Substring(1,1);
    rstr+=ConvertChinese(tmpstr)+"分";
    rstr=rstr.Replace("零分","");
    rstr=rstr.Replace("零角","");
    return rstr;
   }
  
  
  }

  ///


  /// 转换数字
  ///

  /// 转换的字符串(四位以内)
  ///
  public string ConvertDigit(string str)
  {
   int strlen=str.Length;
   string rstr="";
   switch (strlen)
   {
    case 1: rstr=ConvertChinese(str);break;
    case 2: rstr=Convert2Digit(str);break;
    case 3: rstr=Convert3Digit(str);break;
    case 4: rstr=Convert4Digit(str);break;
   }
   rstr=rstr.Replace("拾零","拾");
   strlen=rstr.Length;

   return rstr;
  }


  ///


  /// 转换四位数字
  ///

  public string Convert4Digit(string str)
  {
   string str1=str.Substring(0,1);
   string str2=str.Substring(1,1);
   string str3=str.Substring(2,1);
   string str4=str.Substring(3,1);
   string rstring="";
   rstring+=ConvertChinese(str1)+"仟";
   rstring+=ConvertChinese(str2)+"佰";
   rstring+=ConvertChinese(str3)+"拾";
   rstring+=ConvertChinese(str4);
   rstring=rstring.Replace("零仟","零");
   rstring=rstring.Replace("零佰","零");
   rstring=rstring.Replace("零拾","零");
   rstring=rstring.Replace("零零","零");
   rstring=rstring.Replace("零零","零");
   rstring=rstring.Replace("零零","零");
   return rstring;
  }
  ///
  /// 转换三位数字
  ///

  public string Convert3Digit(string str)
  {
   string str1=str.Substring(0,1);
   string str2=str.Substring(1,1);
   string str3=str.Substring(2,1);
   string rstring="";
   rstring+=ConvertChinese(str1)+"佰";
   rstring+=ConvertChinese(str2)+"拾";
   rstring+=ConvertChinese(str3);
   rstring=rstring.Replace("零佰","零");
   rstring=rstring.Replace("零拾","零");
   rstring=rstring.Replace("零零","零");
   rstring=rstring.Replace("零零","零");
   return rstring;
  }
  ///
  /// 转换二位数字
  ///

  public string Convert2Digit(string str)
  {
   string str1=str.Substring(0,1);
   string str2=str.Substring(1,1);
   string rstring="";
   rstring+=ConvertChinese(str1)+"拾";
   rstring+=ConvertChinese(str2);
   rstring=rstring.Replace("零拾","零");
   rstring=rstring.Replace("零零","零");
   return rstring;
  }
  ///
  /// 将一位数字转换成中文大写数字
  ///

  public string ConvertChinese(string str)
  {
   //"零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分"
   string cstr="";
   switch(str)
   {
    case "0": cstr="零";break;
    case "1": cstr="壹";break;
    case "2": cstr="贰";break;
    case "3": cstr="叁";break;
    case "4": cstr="肆";break;
    case "5": cstr="伍";break;
    case "6": cstr="陆";break;
    case "7": cstr="柒";break;
    case "8": cstr="捌";break;
    case "9": cstr="玖";break;
   }
   return(cstr);
  }

 

  fanz2000 [ 原作]
作者Blog:http://blog.youkuaiyun.com/fanz2000/
实现数字金额到中文大写的编程技巧 在创建“数字转换器”类时,可以定义如下属性和方法:属性可能包括:amount(String类型):存储需要转换的数字金额。result(String类型):存储转换结果的中文大写金额。unitMapper(Map类型):映射数字到中文单位的映射表。方法可能包括::设置需要转换的金额。:执行转换逻辑,将数字金额转换为中文大写。:返回转换后的结果。在方法中,逻辑执行的步骤可能包括:1. 验证输入金额的有效性。 阅读详情

相关推荐

将阿拉伯数字转换为汉字数字或者汉字大写金额

1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)的整数和小数的转化。 2、当转换为汉字金额时精确到分,即小数部分的第二位,如果您传入的金额小数部分超过两位则自动在第三位开始四舍五入。如:1234567.074会转换为“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”;1234567.075则转换为“壹佰贰拾叁万肆仟伍佰陆拾柒圆零捌分” 3、在c# 语音环境下测试通过。压缩包内附有详细使用说明

C# 实现阿拉伯数字转换为中文数字3种实现思路(递归拼接、循环拼接、if拼接)

1、数字1-9转换为中文数字 //数字1-9转换为中文数字 public string OneBitNumberToChinese(int num){ string result = ""; switch(num){ case 1:result = "一";break; case 2:result = "二";break; case 3:result = "三";break; case 4:result = "四";break; case 5:resul.

旭东怪的博客 6241

C#数字转换为汉字大写数字—财务用

将数字转换为汉字大写数字。不支持负数。 输入(字符串):"10200004.02" 输出(字符串):"壹仟零贰拾萬零肆元零角贰分"

c#阿拉伯数字转化为汉字一、二、二十一、一百零一

开发中遇到需要将阿拉伯数字转化成汉字一、二、三的问题,网上找了些,没找到符合自己需求, 总是会出现各种问题,于是自己写了一个通用的方法,基本满足大众需求(感觉比网上的一些好多了·-·)完整代码及测试数据在下面,大家有需要的完全可以直接拿去用。

qq_41393222的博客 1850

Windows下QT5.15.2安装MQTT模块全攻略(附分支选择避坑指南)

本文详细介绍了在Windows环境下为QT5.15.2安装MQTT模块的完整流程,包括环境准备、源码获取、编译配置及项目集成等关键步骤。特别针对分支选择、依赖项处理和常见错误提供了实用解决方案,帮助开发者高效完成MQTT模块的安装与调试,适用于物联网开发场景。

weixin_29224589的博客 466

将Matlab程序打包成.exe独立可执行程序

将Matlab程序打包成.exe独立可执行程序,在未安装Matlab的电脑上也能运行Matlab程序。

简简单单的学习笔记,致力于帮助更多前进路上的朋友~ 5万+

C# 阿拉伯整数转中文算法

这个算法将一个整数转换成中文字符,它的大致流程如下:

张赐荣的技术博客 854

使用Eggjs做服务端获取微信小程序云开发数据库的access_token

最近自己想写了一个微信小程序,恰巧里面有个云开发,恰巧里面有个数据库,那懒人的我,就直接用云开发里面的数据库了,做测试或者正式也好,对于刚开始来说,免费的配额是够用的。 后来想到在小程序云开发上面的数据怎么看才方便?刚好微信小程序有一个服务端API,那就方便很多了,那就直接敲个服务端来获取云开发上数据库的数据出来到自己的后台上面,那以后管理起来也方便很多。 看了一下服务端api之后,发现有三个重要...

kalenE992的博客 1703

C#实现的【阿拉伯数字转换成中文大写金额】代码(原创)

以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知)。代码的主调函数为ConvertSum,它的参数是string类型的数字字符串。在ASP.NET中调用方式如下:Label1.Text=ConvertSum("数字字符串

fanz2000的专栏 6321

告别Qt Creator!VSCode + QMake + MinGW:从零搭建高效Qt开发环境

本文详细介绍了如何使用VSCode替代Qt Creator搭建高效的Qt开发环境,涵盖VSCode配置、QMake与MinGW集成、智能提示优化及构建调试技巧。通过实战案例展示如何提升开发效率30%以上,特别适合中大型Qt项目开发。

weixin_30466039的博客 242

opencv去除印章痕迹

今天看到一个很有意思的程序,就是去除票据上的红色印章,觉得很有意思,就把它抄过来记录一下,同时自己也开了一下脑洞。 原来的程序来自:https://www.cnblogs.com/skyfsm/p/7638301.html 可以看到图像效果很不错,下面是源码实现: #include &lt;iostream&gt; #include &lt;opencv2/imgproc/imgpro...

zeng_haoyu的博客 7955

将数字转换成大写金额(整数)

private string ChineseMoney(int num)     {         string retVal = string.Empty;         string money = num.ToString();         char[] chrM = money.ToCharArray();         string[] Num

zfl1986的专栏 1081

基于LLaMA-action模型的文档摘要任务微调

文档摘要是指从长文档中提取关键信息,生成简短而准确的总结。抽取式摘要:从原文中直接抽取关键句子或短语组成摘要。生成式摘要:通过生成新的句子来表达原文的核心内容。混合式摘要:结合抽取式和生成式方法,既保留原文的关键句子,又生成新的内容。新闻网站:自动生成新闻摘要,帮助用户快速了解新闻要点。社交媒体:为用户提供新闻摘要,便于分享和传播。学术搜索引擎:为用户提供学术文献的摘要,帮助用户快速筛选相关文献。学术写作辅助:帮助研究人员快速生成文献综述部分。企业内部文档管理:自动生成文档摘要,便于员工快速了解文档内容。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1430

C#写的将阿拉伯数字转换成中文大写金额代码

C#写的将阿拉伯数字转换成中文大写金额代码  

golden的专栏 2297

AI在智能制造中的落地:从预测维护到自适应生产调度

从最新的研究与实践来看,“预测维护”和“自适应生产调度”正在成为智能制造中最先跑通闭环的两个核心场景:前者通过对设备健康的前瞻性预测,帮助企业减少非计划停机、优化备件与维护资源;后者通过对复杂生产系统的实时决策优化,使工厂能够更好地应对订单波动、设备故障和多目标约束。更重要的是,越来越多的研究与项目不再将二者视为孤立模块,而是尝试构建“设备健康—生产调度—供应链”三者联动的一体化架构。Nature在技术层面,深度学习、强化学习、多智能体系统、图神经网络和注意力机制等方法,为建模复杂工业系统提供了强大工具;

nmdbbzcl的博客 1289

PCIe 全解析笔记:从协议本质到工程实现

学习 PCIe,最容易陷入的误区是直接跳进协议手册(Base Spec 1300 多页),然后在 TLP 字段、LTSSM 状态、Ordering Rules 中迷失方向。正确的思维路径历史维度:从 PCI 到 PCIe,解决了什么核心矛盾?抽象维度:协议栈分层的真正意图是什么?工程维度:高速串行链路面临哪些物理挑战?协议如何应对?系统维度:作为 CPU 与外设的"动脉",PCIe 如何融入整个计算机体系?带着这四个视角去看每一个细节,知识才能内化为认知。

m0_46644103的博客 260

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

C#实现的【阿拉伯数字转换成中文大写金额】代码代码的主调函数为ConvertSum,它的参数是string类型的数字字符串。在ASP.NET中调用方式如下:Label1.Text=ConvertSum("数字字符串");其代码如下://作者:fanz2000//Email:fanz2000@sohu.com/// /// 转换数字金额主函数(包括小数)/// /// 数

tq06f2r的专栏 802

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java阿拉伯转大写_JAVA编写将阿拉伯数字转换成中文大写不要...

2016-09-01 00:35黄益江 客户经理把阿拉伯数字转为中文可以,你在“设置单元格格式”“数字”“特殊”“中文大写数字”,就可以了袱甫递晃郛浩店彤锭廓,只要你输入数字,他会自动变为中文的大写2016-09-01 00:32黄盛洁 客户经理java实现金额转换,阿拉伯数字的金额转换成中国传统的形式import java.util.HashMap;import java.text.Number...

weixin_35891744的博客 1631

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何把阿拉伯数字转换为中文大写?

    之前在优快云论坛里,看有人Show了一些把中文大写转换成阿拉伯数字的程序代码,自己也用Java语言实现了程序设计,基本上能够实现十万亿以内的任何数字的转换。之前也帖出自己的实现代码。    但我个人认为,把大写转换为数字实际上是没有多少意义的。因为很少有把大写转为数字的,大多数都是把数字转换为大写。何况把大写转为数字并不是一件很容易的事情,因为汉语大写有很多种说法,比如说:101

★★★★★ 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# 实现将阿拉伯数字转换成中文大写金额

public static string CmycurD(decimal num)         {             string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字             string st

Stay hungry,stay foolish。 973

C#实现的【阿拉伯数字转换成中文大写金额】

//作者:fanz2000 //Email:fanz2000@sohu.com /// /// 转换数字金额主函数(包括小数) /// /// 数字字符串 /// 转换成中文大写后的字符串或者出错信息提示字符串 public string ConvertSum(string str) { if(!IsPositveDecimal(str)) return "输入的...

254

【转载】C#工具类:人民币金额转换为中文大写

在涉及到金融业务这一块的系统设计中,时常能够遇到的情况是需要将阿拉伯数字的人民币金额自动转换为中文的大写金额。现在互联网上也有很多网站提供此类服务,只要你输入人民币的阿拉伯数字金额,输入后自动给你转换为中文大写。C#实现将人民币金额转换为大写的流程也不复杂,100行代码都不需要,具体的实现参见以下详细文档。 定义一个工具类RmbHelper,该类主要的功能就是转换人民币大小金额。具体的实现代码如...

weixin_30430169的博客 252

阿拉伯金额转中文大写及英文格式

金额大写#region 金额大写        /**////         /// 转换数字金额主函数(包括小数)        ///         /// 数字字符串        /// 转换成中文大写后的字符串或者出错信息提示字符串        public string ConvertSum(string str)        ...{            if (!Is

一等一 的专栏 2212

数字金额转换成大写金额

 using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.

James Deng的专栏 1269

数字金额转为大写金额

<br />/// <summary>金额转大写 /// /// </summary> public class MoneyConvertChinese { /// <summary>金额转大写 /// /// </summary> /// <param name="LowerMoney"></param> /// <returns></returns> p

Chenindex的专栏 819

C#实现人民币阿拉伯数字转换成大写金额的代码

下面的代码是关于C#实现人民币阿拉伯数字转换成大写金额的代码,应该能对各朋友有一些用途。 void Main() { Console.WriteLine("{0,14:N2}: {1}", 102, ConvertToChinese(102)); } static string ConvertToChinese(double x) { string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0

kubibi的博客 734
上一篇: 使用正规表达式编写更好的 SQL
下一篇: 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
gztoby
博客等级 码龄22年 70粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值