C#数字转人民币大写
C#方法
废话不多说,直接上代码:
/// <summary>
/// 数字转换为大写人民币表示
/// </summary>
/// <param name="strMoney"></param>
public string MoneyToChinese(string strCurrentDigit)
{ // 1. 字符串切分string integral = ""; // 整数部分string dec = ""; // 小数部分string[] strDigitList = strCurrentDigit.Split(new char[] { '.' });if (strDigitList.Length > 1){integral = strDigitList[0];dec = strDigitList[1];}else{integral = strDigitList[0];dec = "";}// 2. 数据准备 string[] radices = {"","拾", "佰", "仟"};string[] bigRadices = {"","万","亿"};string[] decimals = {"角","分"};string CN_DOLLAR = "元";string CN_SYMBOL = ""; // 人民币string CN_INTEGER = "整";string d = "";string outputCharacters = "";int zeroCount = 0;int p = 0;int quotient = 0;int modulus = 0;// 3. 整数部分if (integral.Length > 0) {zeroCount = 0;for (int i = 0; i < integral.Length; i++){p = integral.Length - i - 1;d = integral.Substring(i, 1);quotient = p / 4;modulus = p % 4;if (d == "0"){zeroCount++;}else{if (zeroCount > 0){outputCharacters += "0";}zeroCount = 0;outputCharacters += d + radices[modulus];}if (modulus == 0 && zeroCount < 4){outputCharacters += bigRadices[quotient];}}if (!string.IsNullOrEmpty(outputCharacters)){ outputCharacters += CN_DOLLAR; }}// 4. 小数部分 if (dec != "") {for (int i = 0; i < dec.Length; i++) {d = dec.Substring(i, 1);if (d != "0") {outputCharacters += d + decimals[i];}}}// Confirm and return the final output string:if (outputCharacters == "") {outputCharacters = "0" + CN_DOLLAR;}if (dec == "") {outputCharacters += CN_INTEGER;} return outputCharacters;
}
javaScript方法
/*** 数字转换为人民币大写*/convertCurrency: function(currencyDigits) {// Constants: var MAXIMUM_NUMBER = 99999999999.99;// Predefine the radix characters and currency symbols for output: var CN_ZERO = "0";var CN_ONE = "1";var CN_TWO = "2";var CN_THREE = "3";var CN_FOUR = "4";var CN_FIVE = "5";var CN_SIX = "6";var CN_SEVEN = "7";var CN_EIGHT = "8";var CN_NINE = "9";var CN_TEN = "十";var CN_HUNDRED = "佰";var CN_THOUSAND = "仟";var CN_TEN_THOUSAND = "万";var CN_HUNDRED_MILLION = "亿"; var CN_DOLLAR = "元";var CN_TEN_CENT = "角";var CN_CENT = "分";var CN_INTEGER = "整";// Variables: var integral; // Represent integral part of digit number. var decimal; // Represent decimal part of digit number. var outputCharacters; // The output result. var parts;var digits, radices, bigRadices, decimals;var zeroCount;var i, p, d;var quotient, modulus;// Validate input string: currencyDigits = currencyDigits.toString();if (currencyDigits == "") {alert("请输入小写金额!");return "";}if (currencyDigits.match(/[^,.\d]/) != null) {alert("小写金额含有无效字符!");return "";}if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {alert("小写金额的格式不正确!");return "";}// Normalize the format of input digits: currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters. currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning. // Assert the number is not greater than the maximum number. if (Number(currencyDigits) > MAXIMUM_NUMBER) {alert("金额过大,应小于1000亿元!");return "";}// Process the coversion from currency digits to characters: // Separate integral and decimal parts before processing coversion: parts = currencyDigits.split(".");if (parts.length > 1) {integral = parts[0];decimal = parts[1];// Cut down redundant decimal digits that are after the second. decimal = decimal.substr(0, 2);} else {integral = parts[0];decimal = "";}// Prepare the characters corresponding to the digits: digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);decimals = new Array(CN_TEN_CENT, CN_CENT);// Start processing: outputCharacters = "";// Process integral part if it is larger than 0: if (Number(integral) > 0) {zeroCount = 0;for (i = 0; i < integral.length; i++) {p = integral.length - i - 1;d = integral.substr(i, 1);quotient = p / 4;modulus = p % 4;if (d == "0") {zeroCount++;} else {if (zeroCount > 0) {outputCharacters += digits[0];}zeroCount = 0;outputCharacters += digits[Number(d)] + radices[modulus];}if (modulus == 0 && zeroCount < 4) {outputCharacters += bigRadices[quotient];zeroCount = 0;}}outputCharacters += CN_DOLLAR;}// Process decimal part if there is: if (decimal != "") {for (i = 0; i < decimal.length; i++) {d = decimal.substr(i, 1);if (d != "0") {outputCharacters += digits[Number(d)] + decimals[i];}}}// Confirm and return the final output string: if (outputCharacters == "") {outputCharacters = CN_ZERO + CN_DOLLAR;}if (decimal == "") {outputCharacters += CN_INTEGER;}return outputCharacters;},
C#数字转人民币大写相关推荐
- .net 将数字转换为人民币大写
程序中用到将数字转换为大写人民币,在网上找了一个方法,记录下来. using System.Text; using System.Text.RegularExpressions; ///<sum ...
- js 数字转人民币大写
目前网上有许多的数字转人民币大写功能,但是在某些数字上就回出现错误, 比如501356,这个转换之后,有的会转换成 "伍拾万零壹仟叁佰伍拾陆" ,单位万和千紧密相连,中间是不需要 ...
- ORACLE数字转换人民币大写
ORACLE 数字转换人民币大写 示例. 数字 :183066999230.68 人民币大写 :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参拾圆陆角捌分 ...
- php人民币函数,PHP数字转人民币大写函数
PHP数字转人民币大写函数2018-04-23 09:59 如果你是一位财务人员,肯定遇到过一个问题,就是遇到一串数字,要将其写成大写的人民币,有时很容易搞错. 那么有没有什么方法可以准确的解决呢? ...
- 把数字转换为人民币大写(用于银行系统)
大二是老师让做一个综合试验::用C++实现简易银行系统,其中用到在打印流水账时要求把金额转换为人民币大写...当时傻里吧唧的,,,随便拷贝了个同学的应付老师交了了事...前一段一个大二的弟兄向我提起银 ...
- 浮点数字转换为人民币大写字体
新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数转换为人民币大写字体 import java.util.Scanner ...
- sql 数字转人民币大写函数(两种方法)
create function UpperRMB(@num numeric(14,2))returns @rmb table(亿 varchar(2),仟万 varchar(2),佰万 varchar ...
- oracle 数字转人民币大写函数
oralce中用于将数据转换为人民币大写的函数.. function to_rmbdx(i_money in varchar2) return varchar2 is i number; ...
- C#,数字转人民币大写方法
using System; namespace Test { /**//// <summary> /// Rmb 的摘要说明. /// </summary ...
最新文章
- 中国首份自动驾驶路测报告:自主车企全面落后
- 扯谈spring mvc之WebApplicationContext的继承关系
- 七段液晶数字识别-处理程序
- MTCNN人脸及特征点检测---代码应用详解c++
- php 获取文件后缀_php获取文件后缀的9种方法
- JVM 调优实战--垃圾回收的常见算法
- kali linux 截图 软件,Kali-Linux-Tools-Interface:针对Kali Linux的图形化Web接口
- 2019年12月计算机统考答案,2019年12月计算机等级WPS考前冲刺练习题及答案
- 软件测试人员的三重境界
- 附录:保护模式下的各个“对象”
- 为什么要简化代码书写
- mupdf不支持x64_电脑安装win10的速度很慢,是不是没有制作支持UEFI的启动U盘?
- 开源 免费 java CMS - FreeCMS1.5 标签 ajaxStore
- Oracle9i中监视索引的使用
- arcgis悬挂点修改_ArcGIS对进行数据拓扑修改
- IT人的职业生涯规划
- beetl html模板,Beetl模板引擎之自定义html标签
- Windows10系统无法更改默认浏览器等默认设置
- matlab基础学习——基础数学函数(持续更新)
- Survey of Aspect-based Sentiment Analysis Datasets