`

人民币大小写转换

    博客分类:
  • JS
 
阅读更多
function convertCurrency(currencyDigits) {  
// Constants:  
var MAXIMUM_NUMBER = 99999999999.99;  
// Predefine the radix characters and currency symbols for output:  
var CN_ZERO = "零";  
var CN_ONE = "壹";  
var CN_TWO = "贰";  
var CN_THREE = "叁";  
var CN_FOUR = "肆";  
var CN_FIVE = "伍";  
var CN_SIX = "陆";  
var CN_SEVEN = "柒";  
var CN_EIGHT = "捌";  
var CN_NINE = "玖";  
var CN_TEN = "拾";  
var CN_HUNDRED = "佰";  
var CN_THOUSAND = "仟";  
var CN_TEN_THOUSAND = "万";  
var CN_HUNDRED_MILLION = "亿";  
var CN_SYMBOL = "人民币";  
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("Empty input!");  
return "";  
}  
if (currencyDigits.match(/[^,.\d]/) != null) {  
//alert("Invalid characters in the input string!");  
return "";  
}  
if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {  
//alert("Illegal format of digit number!");  
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("您输入的金额太大,请重新输入!");  
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];  
}  
}  
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;  
}  
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;  
}
分享到:
评论

相关推荐

    人民币大小写转换软件

    人民币大小写转换软件 转换标准的银行款项.

    VB.NET编写的人民币大小写转换工具

    VB.NET编写的人民币大小写转换工具,实现小写转大写,大写转小写。

    人民币大小写转换,完整带整和零

    在IT行业中,人民币大小写转换是一项常见的编程任务,特别是在财务软件或者银行系统开发中。它涉及到将数字金额从阿拉伯数字形式转换成汉字大写形式,以满足中国金融行业的规范要求,确保金额表述清晰且不易篡改。这...

    人民币大小写转换,整带整和零

    3. **零的处理**:在人民币大小写转换中,零的处理尤为重要。零在不同位置有不同的表示,如零元(零)、零角(零)、零分(零)、零拾(零)、零佰(零)、零仟(零)。在转换时,需要根据位置正确插入。 4. **小数...

    C# 人民币大小写转换

    针对“C# 人民币大小写转换”这一主题,我们需要探讨如何利用C#编程语言处理人民币金额的格式化,特别是将其从阿拉伯数字形式转换为中文大写,这在财务单据中是必不可少的,因为中文大写可以避免因数字混淆导致的...

    字母大小写转换工具和人民币大小写转换工具

    在IT领域,字母大小写转换和人民币大小写转换是两种常见的文本处理需求。这些工具主要用于提升数据处理的准确性和效率,特别是在编程、文档编辑、财务报告等场景中。 首先,我们来了解一下字母大小写转换。在计算机...

    jsp页面调用applet实现人民币的大小写转换.docx

    该实现方法通过在JSP页面中嵌入一个Applet,使用JavaScript与Applet进行交互,实现实时的人民币大小写转换。 一、JSP页面调用Applet的实现 在JSP页面中,使用 `;charset=gb2312" %&gt;` 指定页面的字符编码为GB2312,...

    实验一——人民币大小写转换

    ### 实验一——人民币大小写转换 #### 一、引言 本次实验的主题是对人民币数字进行大写转换的软件进行测试。此实验属于软件测试方法和技术课程的一部分,旨在通过实践来检验学生对于软件测试理论的理解与应用能力。...

    PowerBuilder人民币大小写转换

    ### PowerBuilder人民币大小写转换知识点解析 在PowerBuilder开发中,进行人民币金额的大小写转换是一种常见的需求。这种转换主要用于财务、会计等系统的输出显示,确保数据格式符合规范且易于理解。下面将详细介绍...

    vb 人民币大小写转换 代码

    在VB(Visual Basic)编程语言中,经常会有需求将数字转换为中文的人民币大写形式,以便于财务报告和会计处理。以下是一个VB程序的详细分析,它实现了将输入的数字(小写形式)转换为人民币大写的源代码。 首先,...

    C#实例:人民币大小写转换程序

    本实例关注的是一个具体的C#编程任务:实现人民币大小写的转换功能。在金融和会计领域,货币数值通常需要以规范的大写形式表示,以防止篡改和提高账目的准确性。以下是对这个实例的详细讲解: 首先,我们需要理解...

    人民币大小写转换并语音报数

    【标题】"人民币大小写转换并语音报数"是一个基于Delphi7开发的应用程序,它提供了将人民币金额数字形式转换成大写汉字的功能,并且具备语音播报的能力。这个项目可以帮助财务人员快速准确地处理金融文档,减少人为...

    java实现人民币大小写转换

    用java实现的将人民币从数字转换为大写

    人民币大小写转换类库

    在IT行业中,人民币大小写转换类库是一种非常实用的工具,尤其在财务软件或与金融相关的系统开发中。这类库通常包含一系列函数或方法,能够将数字金额转换为中文大写,符合中国财务法规的要求。以下是对这个主题的...

    人民币大小写转换文档及代码

    在IT行业中,人民币大小写转换是一项常见的需求,特别是在财务软件或者银行系统开发中。这个转换功能主要用于将数字化的人民币金额转换成中文大写的表述形式,以便于财务报表的规范和审计。C#作为.NET框架的主要编程...

Global site tag (gtag.js) - Google Analytics