数字转换人民币的类

阿拉伯数字转换成人民币(菜鸟java版 ) NULL 博文链接:https://zhangshangfeng.iteye.com/blog/1599146 立即下载

 

 

 

首先是最NB的:

        public string GetMoney(double dd)
        {
           
string s = dd.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#.0B0A");
           
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L/.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[/.]|$))))", "${b}${z}");
           
string value = Regex.Replace(d, ".", delegate(Match m)
              {
return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
           
return value;
        }

其次是正常的方法:

  1.  using System;
  2. namespace DecimalToUpper
  3. {
  4.     /*****************************************************************************************  
  5.       *  类名:DecimalToUpper                                                                                   
  6.       *  功能:把金额数据从小写转换为大写                                                           
  7.       *  限制条件:金额小于一万亿,且少于两位小数    
  8.      *  用法:DecimalToUpper  x  =  new  DecimalToUpper();                                  
  9.       *              this.textBox2.Text  =  x.ToUpper(d);                                            
  10.                                                                                                                                         
  11.                                                                                                                                   
  12.       *****************************************************************************************/
  13.     public class DecimalToUpper
  14.     {
  15.         public DecimalToUpper()
  16.         {
  17.             //  
  18.             //  TODO:  在此处添加构造函数逻辑  
  19.             //  
  20.         }
  21.         ///  <summary>  
  22.         ///  小写金额转换为大写金额,其他条件:金额小于一万亿,最多两位小数  
  23.         ///  </summary>  
  24.         ///  <param  name="d">源金额,d  《  1000000000000.00(一万亿),且最多两位小数  </param>  
  25.         ///  <returns>结果,大写金额 </returns>  
  26.         public string ToUpper(decimal d)
  27.         {
  28.             if (d == 0)
  29.                 return "零元整";
  30.             string je = d.ToString("####.00");
  31.             if (je.Length > 15)
  32.                 return "";
  33.             je = new String('0', 15 - je.Length) + je; //若小于15位长,前面补0  
  34.             string stry = je.Substring(0, 4); //取得'亿'单元  
  35.             string strw = je.Substring(4, 4); //取得'万'单元  
  36.             string strg = je.Substring(8, 4); //取得'元'单元  
  37.             string strf = je.Substring(13, 2); //取得小数部分  
  38.             string str1 = "", str2 = "", str3 = "";
  39.             str1 = this.getupper(stry, "亿"); //亿单元的大写  
  40.             str2 = this.getupper(strw, "万"); //万单元的大写  
  41.             str3 = this.getupper(strg, "元"); //元单元的大写  
  42.             string str_y = "", str_w = "";
  43.             if (je[3] == '0' || je[4] == '0') //亿和万之间是否有0  
  44.                 str_y = "零";
  45.             if (je[7] == '0' || je[8] == '0') //万和元之间是否有0  
  46.                 str_w = "零";
  47.             string ret = str1 + str_y + str2 + str_w + str3; //亿,万,元的三个大写合并  
  48.             for (int i = 0; i < ret.Length; i++) //去掉前面的"零"  
  49.             {
  50.                 if (ret[i] != '零')
  51.                 {
  52.                     ret = ret.Substring(i);
  53.                     break;
  54.                 }
  55.             }
  56.             for (int i = ret.Length - 1; i > -1; i--) //去掉最后的"零"  
  57.             {
  58.                 if (ret[i] != '零')
  59.                 {
  60.                     ret = ret.Substring(0, i + 1);
  61.                     break;
  62.                 }
  63.             }
  64.             if (ret[ret.Length - 1] != '元') //若最后不位不是'元',则加一个'元'字  
  65.                 ret = ret + "元";
  66.             if (ret == "零零元") //若为零元,则去掉"元数",结果只要小数部分  
  67.                 ret = "";
  68.             if (strf == "00") //下面是小数部分的转换  
  69.             {
  70.                 ret = ret + "整";
  71.             }
  72.             else
  73.             {
  74.                 string tmp = "";
  75.                 tmp = this.getint(strf[0]);
  76.                 if (tmp == "零")
  77.                     ret = ret + tmp;
  78.                 else
  79.                     ret = ret + tmp + "角";
  80.                 tmp = this.getint(strf[1]);
  81.                 if (tmp == "零")
  82.                     ret = ret + "整";
  83.                 else
  84.                     ret = ret + tmp + "分";
  85.             }
  86.             if (ret[0] == '零')
  87.             {
  88.                 ret = ret.Substring(1); //防止0.03转为"零叁分",而直接转为"叁分"  
  89.             }
  90.             return ret; //完成,返回  
  91.         }  ///  <summary>  
  92.         ///  把一个单元转为大写,如亿单元,万单元,个单元  
  93.         ///  </summary>  
  94.         ///  <param  name="str">这个单元的小写数字(4位长,若不足,则前面补零) </param>  
  95.         ///  <param  name="strDW">亿,万,元 </param>  
  96.         ///  <returns>转换结果 </returns>  
  97.         private string getupper(string str, string strDW)
  98.         {
  99.             if (str == "0000")
  100.                 return "";
  101.             string ret = "";
  102.             string tmp1 = this.getint(str[0]);
  103.             string tmp2 = this.getint(str[1]);
  104.             string tmp3 = this.getint(str[2]);
  105.             string tmp4 = this.getint(str[3]);
  106.             if (tmp1 != "零")
  107.             {
  108.                 ret = ret + tmp1 + "仟";
  109.             }
  110.             else
  111.             {
  112.                 ret = ret + tmp1;
  113.             }
  114.             if (tmp2 != "零")
  115.             {
  116.                 ret = ret + tmp2 + "佰";
  117.             }
  118.             else
  119.             {
  120.                 if (tmp1 != "零") //保证若有两个零'00',结果只有一个零,下同  
  121.                     ret = ret + tmp2;
  122.             }
  123.             if (tmp3 != "零")
  124.             {
  125.                 ret = ret + tmp3 + "拾";
  126.             }
  127.             else
  128.             {
  129.                 if (tmp2 != "零")
  130.                     ret = ret + tmp3;
  131.             }
  132.             if (tmp4 != "零")
  133.             {
  134.                 ret = ret + tmp4;
  135.             }
  136.             if (ret[0] == '零') //若第一个字符是'零',则去掉  
  137.                 ret = ret.Substring(1);
  138.             if (ret[ret.Length - 1] == '零') //若最后一个字符是'零',则去掉  
  139.                 ret = ret.Substring(0, ret.Length - 1);
  140.             return ret + strDW; //加上本单元的单位  
  141.         }
  142.         ///  <summary>  
  143.         ///  单个数字转为大写  
  144.         ///  </summary>  
  145.         ///  <param  name="c">小写阿拉伯数字  0---9 </param>  
  146.         ///  <returns>大写数字 </returns>  
  147.         private string getint(char c)
  148.         {
  149.             string str = "";
  150.             switch (c)
  151.             {
  152.                 case '0':
  153.                     str = "零";
  154.                     break;
  155.                 case '1':
  156.                     str = "壹";
  157.                     break;
  158.                 case '2':
  159.                     str = "贰";
  160.                     break;
  161.                 case '3':
  162.                     str = "叁";
  163.                     break;
  164.                 case '4':
  165.                     str = "肆";
  166.                     break;
  167.                 case '5':
  168.                     str = "伍";
  169.                     break;
  170.                 case '6':
  171.                     str = "陆";
  172.                     break;
  173.                 case '7':
  174.                     str = "柒";
  175.                     break;
  176.                 case '8':
  177.                     str = "拐";
  178.                     break;
  179.                 case '9':
  180.                     str = "玖";
  181.                     break;
  182.             }
  183.             return str;
  184.         }
  185.     }
  186. }

 

 

 

OLED 驱动模块程序代码 作为嵌入式软件开发,可能经常会使用单片机连接驱动显示屏,实现人机交互的功能,通常可选择的有 OLED 和 LCD 等,其中相关驱动代码例程网上更是数不胜数。 本文介绍的是 OLED, 常见代表有 0.96 寸的OLED,网上也有很多相关的驱动代码,但是大部分代码都是能用即可,不是特别关注驱动代码的整体架构,以下是个人整理的 OLED 驱动代码,支持配置 SPI 和 IIC 两种接口方式(目前只是测试了 SPI,IIC 有待验证)。 阅读详情

相关推荐

数值转换成人民币大写的一个类

网上有许多将数值转换成人民币大写的代码,其中有不少写得很好的。昨天在Csdn上浏览,觉得这个比较简洁,但也有几点小Bug,稍加整理,觉得仍然与财务表达方式有不一致的地方,故先贴上来,请大家看看。 public class GetRMBToUpperCase ...{    /**//*     * 将数值转换成人民币大写,根据网上一搜索整理修改而成     * 仍然有两个Bug 1、万

jinggangshi的专栏 3449

51单片机也能玩转GC9A01彩屏?超详细移植指南与性能优化技巧

本文详细介绍了如何在51单片机上高效驱动GC9A01彩屏,包括硬件连接优化、SPI模拟驱动、内存管理策略及高级刷新技术。通过分段缓冲、颜色压缩和差异化刷新等技巧,显著提升显示性能,使51单片机也能流畅运行240x240分辨率的彩色TFT屏幕。

hp777的博客 189

C# 词法分析器(三)正则表达式

系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 正则表达式是一种描述词素的重要表示方法。虽然正则表达式并不能表达出所有可能的模式(例如“由等数量的 a 和 b 组成的字符串”),但是它可以非常高效的描述处理词法单元时要用到的模式类型。 一、正则表达式的定义 正则表达式...

weixin_30315723的博客 256

超简单五步实现VOS3000客户端呼入配置

1.查看SIP代理  在注册管理中查看自己线路注册的SIP代理IP地址,记录下来。 2.创建普通账户  创建一个呼入使用的普通账号,选择“计费费率”,根据自己情况选择费率,这里做测试就配置了免费的费率,如果费率不是免费,需要给这个普通账户充值。 3.新建对接网关 新建一个对接网关,点击该网关的“补充设置”,选择“网关类型”为静态IP,然后在IP地址栏填上刚才在注册管理里面记录的SIP代...

非著名运维的博客 1万+

LeRobot — 基于 PyTorch 的真实世界机器人学习框架(一)- 核心框架模块解析

LeRobot 是一个开源的机器人学习框架,由 Hugging Face 开发,旨在降低机器人学的准入门槛。该框架提供完整的机器学习流程支持,包括数据采集、训练、评估和部署。核心模块涵盖数据集标准化、策略算法、硬件抽象和强化学习组件,采用模块化设计实现灵活扩展。通过集成 Hugging Face Hub,用户可以轻松共享数据集和预训练模型。LeRobot 特别注重真实世界的机器人应用,支持多种前沿算法如模仿学习、视觉语言动作模型等,并提供统一的硬件接口和仿真环境适配。

熊猫小妖的AI世界 171

3种人民币RMB符号的写法

传统的人民币符号写法有两种:¥和&#65509; 现在淘宝有中新的写法: font-family:Arial; + & yen ; 例如:99元 对应的代码为: ¥99元 &#65509;99元 <p style="font-family:Arial;">&yen; 100元</p> ...

Jack huang 的技术笔记 1万+

【26美赛A题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

本文介绍了2026年美赛数学建模A题的解题思路与方法。A题通常属于连续型系统问题,重点在于构建可解释的机理模型,通过将现实机制转化为动态方程进行仿真预测。文章提出了通用建模路线,包括机理抽象、模型假设、动态建模、参数识别、系统仿真和情景预测六个阶段。专栏将提供从机理到方程的系统建模思路、参数标定方法、Python/Matlab实现代码以及高分论文模板。内容适合参加2026美赛A题、偏重物理/工程建模方向的参赛队伍,旨在提升机理建模能力。后续将更新完整题解和源码。

一键难忘的博客 2007

数字转汉字 金钱

import java.math.BigDecimal; public class NumberToCN { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌",

majun_guang的专栏 1370

大模型的实践应用31-基于通义千问大模型改进台风和海浪预测研究,利用机器学习与通义千问结合的思路实现对台风和海浪预测分析

通义千问大模型是阿里巴巴云推出的一款大规模语言模型,旨在通过强大的自然语言处理能力提供更广泛的服务。从最初的构想到如今的广泛应用,通义千问的发展见证了人工智能领域尤其是自然语言处理技术的巨大进步。自发布以来,通义千问不断迭代升级,不仅在规模上实现了飞跃式的增长,在性能方面也得到了显著提升。本次研究尝试将通义千问强大的自然语言处理能力与经典的时间序列预测算法相结合,旨在提高对未来天气状况预测的精度。具体来说,首先使用通义千问生成高质量的文字描述来增强特征表达力;

微学AI的博客 935

如何利用gretna软件计算脑网络全局属性(聚类系数,小世界属性,最短路径),局部属性指标(度,度分布,节点效率),如何理解网络稀疏度

grena工具箱被设计用于fMRI数据的图论网络分析。它是一套MATLAB函数和基于MATLAB的接口,用于常规的fMRI预处理,用于计算和统计分析最常用的网络指标,如小世界参数、效率、度、间性、关联性、层级性、同步性和模块化。......

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9174

java 人民币转换_把数字转换成人民币大写的形式Java类详解

/*** @author sunpander* 把输入的数字转换成人民币大写的形式*/import java.io.BufferedReader;import java.io.InputStreamReader;public class ChangeNumToRMB {String moneyStrs[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌...

weixin_30227789的博客 331

23种设计模式-享元(Flyweight)设计模式

软考中级-软件设计师 享元设计模式

片言可决讼,半纸能缚龙 3223

刚开始学Java,写了一个金额大写转换和中文大写数字转换的类

       这几天刚刚开始学Java,想练练手,写了这个人民币金额大写转换,中文数字大写转换的类。      希望大家指点。/* * Copyright 2008  weijn2000@163.net * ChineseNum类有2个Static方法: * 1、UpperRMB(double money)用于转换符合票据使用的人民币大写金额 * 2、Upper

weijn2000的专栏 1048

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java整数转换汉子大写_数字变成大写的类,把人民币转化为大写汉字

import java.math.BigDecimal;public class ConvertNumber ...{/** *//** 定义数组存放数字对应的大写 */private final static String[] STR_NUMBER = ...{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };/** *//** 定义数组存放...

weixin_42353061的博客 250

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JAVA BigDecimal数字转换成人民币及格式化

JAVA BigDecimal数字转换成人民币及格式化 import java.math.BigDecimal; import java.math.RoundingMode; import java.text.NumberFormat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @Description...

h363659487的博客 4291

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

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

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

using System; namespace Test.Com{ ///  /// 功能:字符串处理函数集 ///  public class DealString {  #region 私有成员  ///   /// 输入字符串  ///   private string inputString=null;  ///   /// 输出字符串  ///   private string outS

viewercq的专栏 1393

数字到人民币转换(转)

 public class NumToRmb    ...{        public ArrayList chLen = new ArrayList();        public ArrayList ToRmb = new ArrayList();        //public string[] 位数=new string[]("个","拾","百","千","万","拾万","

Wind_Lam的专栏 502

java-NumberToCNUtils数字转换为汉语中人民币的大写工具类

package com.zhong.util; import java.math.BigDecimal; /** * 数字转换为汉语中人民币的大写<br> * * @author zhong * @create 2019-04-13 */ public class NumberToCNUtils { /** * 汉语中数字大写 */ private sta...

javaZhong的博客 987

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

人民币大写在线转换工具以下为es6写法,可以直接在控制栏粘贴运行/** * 将人民币小写金额转换为大写 * * @class RMB * 示例 let rmb = new RMB() console.log(rmb.transform(2114523.234))// 贰佰壹拾壹万肆仟伍佰贰拾叁元贰角叁分 */ class RMB { constructor() {

vcxiaohan的博客 4572

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

实在没有什么好讲的,就是一个方法,大家拿去用吧using System;namespace Test.Com{ ///  /// 功能:字符串处理函数集 ///  public class DealString {  #region 私有成员  ///   /// 输入字符串  ///   private string inputString=null;  ///   /// 输出字符串 

九个太阳的BLOG 1642

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

usingSystem;namespaceTest.Com{///<summary>///功能:字符串处理函数集///</summary>publicclassDealString{#region私有成员///<summary>///输入字符串///</summary>privatest...

weixin_30377461的博客 83

C#通用类库--数字转为人民币汉字大写表示

//类名:EcanRMB//作用:数字转换为人民币大写//作者:刘典武//时间:2010-12-04usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceEcan{publicclassEcanRMB{///<summary>///转换人...

weixin_33994429的博客 72

C#人民币大小写金额转换

using System;using System.Collections.Generic;using System.Text; namespace RMBCapitalization{    ///     /// 人民币大小写金额转换    ///     class RMBCapitalization    {        private con

雨光 2262

万亿级人民币大写精准转换

万亿级人民币大写精准转换的算法,实现类:cn.jadepool.util.CastRMB,有兴趣的同行,可以下载源代码。

wj800的专栏 2713

金额数字转换为汉语中人民币的大写工具类

package com.qcdl.utils; import java.math.BigDecimal; /** 数字转换为汉语中人民币的大写 @author dean */ public class NumberToCNUtil { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = {"零", ...

weixin_42595331的博客 353
上一篇: dbhelper数据操作类
下一篇: 用SQL删除重复记录的N种方法
CodingSir
博客等级 码龄21年 2149粉丝 812原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值