C# 货币金额中文(英文)大写转换方法-工具类
public static class Money {private static readonly String cnNumber = "零壹贰叁肆伍陆柒捌玖";private static readonly String cnUnit = "分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟";private static readonly String[] enSmallNumber = { "", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN" };private static readonly String[] enLargeNumber = { "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY" };private static readonly String[] enUnit = { "", "THOUSAND", "MILLION", "BILLION", "TRILLION" };// 以下是货币金额中文大写转换方法public static String GetCnString(String MoneyString) {String[] tmpString = MoneyString.Split('.');String intString = MoneyString; // 默认为整数String decString = ""; // 保存小数部分字串String rmbCapital = ""; // 保存中文大写字串int k;int j;int n;if (tmpString.Length > 1) {intString = tmpString[0]; // 取整数部分decString = tmpString[1]; // 取小数部分 }decString += "00";decString = decString.Substring(0, 2); // 保留两位小数位intString += decString;try {k = intString.Length - 1;if (k > 0 && k < 18) {for (int i = 0; i <= k; i++) {j = (int)intString[i] - 48;// rmbCapital = rmbCapital + cnNumber[j] + cnUnit[k-i]; // 供调试用的直接转换n = i + 1 >= k ? (int)intString[k] - 48 : (int)intString[i + 1] - 48; // 等效于 if( ){ }else{ }if (j == 0) {if (k - i == 2 || k - i == 6 || k - i == 10 || k - i == 14) {rmbCapital += cnUnit[k - i];}else {if (n != 0) {rmbCapital += cnNumber[j];}}}else {rmbCapital = rmbCapital + cnNumber[j] + cnUnit[k - i];}}rmbCapital = rmbCapital.Replace("兆亿万", "兆");rmbCapital = rmbCapital.Replace("兆亿", "兆");rmbCapital = rmbCapital.Replace("亿万", "亿");rmbCapital = rmbCapital.TrimStart('元');rmbCapital = rmbCapital.TrimStart('零');return rmbCapital;}else {return ""; // 超出转换范围时,返回零长字串 }}catch {return ""; // 含有非数值字符时,返回零长字串 }}// 以下是货币金额英文大写转换方法public static String GetEnString(String MoneyString) {String[] tmpString = MoneyString.Split('.');String intString = MoneyString; // 默认为整数String decString = ""; // 保存小数部分字串String engCapital = ""; // 保存英文大写字串 String strBuff1;String strBuff2;String strBuff3;int curPoint;int i1;int i2;int i3;int k;int n;if (tmpString.Length > 1) {intString = tmpString[0]; // 取整数部分decString = tmpString[1]; // 取小数部分 }decString += "00";decString = decString.Substring(0, 2); // 保留两位小数位try {// 以下处理整数部分curPoint = intString.Length - 1;if (curPoint >= 0 && curPoint < 15) {k = 0;while (curPoint >= 0) {strBuff1 = "";strBuff2 = "";strBuff3 = "";if (curPoint >= 2) {n = int.Parse(intString.Substring(curPoint - 2, 3));if (n != 0) {i1 = n / 100; // 取佰位数值i2 = (n - i1 * 100) / 10; // 取拾位数值i3 = n - i1 * 100 - i2 * 10; // 取个位数值if (i1 != 0) {strBuff1 = enSmallNumber[i1] + " HUNDRED ";}if (i2 != 0) {if (i2 == 1) {strBuff2 = enSmallNumber[i2 * 10 + i3] + " ";}else {strBuff2 = enLargeNumber[i2 - 2] + " ";if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}}else {if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}engCapital = strBuff1 + strBuff2 + strBuff3 + enUnit[k] + " " + engCapital;}}else {n = int.Parse(intString.Substring(0, curPoint + 1));if (n != 0) {i2 = n / 10; // 取拾位数值i3 = n - i2 * 10; // 取个位数值if (i2 != 0) {if (i2 == 1) {strBuff2 = enSmallNumber[i2 * 10 + i3] + " ";}else {strBuff2 = enLargeNumber[i2 - 2] + " ";if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}}else {if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}engCapital = strBuff2 + strBuff3 + enUnit[k] + " " + engCapital;}}++k;curPoint -= 3;}engCapital = engCapital.TrimEnd();}// 以下处理小数部分strBuff2 = "";strBuff3 = "";n = int.Parse(decString);if (n != 0) {i2 = n / 10; // 取拾位数值i3 = n - i2 * 10; // 取个位数值if (i2 != 0) {if (i2 == 1) {strBuff2 = enSmallNumber[i2 * 10 + i3] + " ";}else {strBuff2 = enLargeNumber[i2 - 2] + " ";if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}}else {if (i3 != 0) {strBuff3 = enSmallNumber[i3] + " ";}}// 将小数字串追加到整数字串后if (engCapital.Length > 0) {engCapital = engCapital + " AND CENTS " + strBuff2 + strBuff3; // 有整数部分时 }else {engCapital = "CENTS " + strBuff2 + strBuff3; // 只有小数部分时 }}engCapital = engCapital.TrimEnd();return engCapital;}catch {return ""; // 含非数字字符时,返回零长字串 }}}
转载于:https://www.cnblogs.com/lenga/p/5088964.html
C# 货币金额中文(英文)大写转换方法-工具类相关推荐
- VBA 金额转英文大写 数字转英文 EXCEL
由于自己英语差,懒得转写,就在网上找了个金额转英文大写的VBA程序,但是发现and有时候会漏加,自己就稍微修改了下,程序分享出来. 使用方法:EXCEL→开发工具→Visual Basic→插入模块→ ...
- [水晶报表]金额转英文大写
源文转载:http://bbs.csdn.net/topics/300021579Function (numbervar Amount) //金额转英文大写,Crystal语法local string ...
- java 中文转拼音_JAVA 将中文转化为拼音工具类
将pinyin4j-2.5.0.jar (附件中有,记得解压)加入到classpath中. 工具类PinyinUtils代码见下:package com.test.utils; import net. ...
- 处理发票上的中文大写金额的转换工具类
处理发票中数字金额转成中文大写金额字符串问题. 效果图: package com.szmsd.hulutianxia.util;public class ChineseNumberUtil {publ ...
- Java金额转换工具类
package com.healthy.prms.common.util;import java.math.BigDecimal;/*** @ClassName: RMBUtils* @Descrip ...
- java 交易金额转换分,java金额元与分转换工具种
java金额元与分转换工具类 java金额元与分转换的一个工具类. 1.元转分: 可传入字符串或者long型(隐式转换为long型也可)整数. 若传入为字符串,则通过替换小数点的方式转换,小数点有多位 ...
- Phalcon使用多语言环境(切换中文/英文等)
Phalcon使用多语言环境(切换中文/英文等) lang类文件 namespace Utils; use Phalcon\Http\Request; use Phalcon\Translate\Ad ...
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- Redis学习篇3_事务及其监控(锁)、Jedis、SpringBoot整合Redis、RedisTemplate的json序列化、RedisUtil工具类
目录 事务及其监控(锁) Jedis SpringBoot整合Redis RedisTemplate 默认RedisTemplate来源 关于中文序列化问题 RedisUtil工具类 一.事务及其监控 ...
最新文章
- linux下的daemon进程
- Unity 播放音频文件
- 实战SSM_O2O商铺_12【商铺注册】View层之前台页面
- Fiori configuration edit also needs enqueue
- java下包内继承时编译不过解决方案
- 公司服务器文件保存出错,R服务器错误保存文件没有这样的文件或目录(Ubuntu)...
- 好看的某云紫色渐变HTML网站源码
- 苏格拉底与失恋者的对话————最经典的失恋哲理 ...
- python遗传算法有多慢_遗传算法框架GAFT优化小记
- 解决Keras 与 Tensorflow 版本之间的兼容性问题,导入keras报错:module 'tensorflow.python.keras.backend' has no attribute
- Monte Carlo采样
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
- 服务器2003系统U盘安装方法,u启动windows2003PE工具箱
- 搅拌反应釜cad图纸_求夹套反应釜设计CAD图纸
- 平安京服务器维护,决战平安京无法登陆怎么解决 无法登陆原因及解决方案一览...
- 刻录光驱不能访问出现函数不正确问题解决
- 西农大 Java 实验四 第三题
- Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to make it available
- 主流的企业级报表工具,国内报表工具排名前列
- 阿里旗下,豆瓣等滑块验证码解决问题
热门文章
- 消费者存在潜在需求的原因分析
- TCL转型启示录:大叔级企业拥抱互联网才能迎来第二春
- spark-1-spark core
- RPA之家手把手带你入门Blue Prism教程系列8_创建并运行一段Process
- matlab正版 在两个上使用,有人使用正版MATLAB吗?
- MSQL优化基础(frequence直方图选择率)
- 压缩包密码忘记了,可以删除吗?
- Style2paints:专业的AI漫画线稿自动上色工具
- kali系统搭建本地服务器,kali linux 下搭建git服务器
- 空战游戏的制作,(被人拿去出书的就是这个,无奈啊)