zoukankan      html  css  js  c++  java
  • 人民币数字转换成大写形式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">  
     <head>  
     <title>将人民币数字转换成大写形式</title>  
     <script language="jscript">  
    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("Too large a number to convert!");  
     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;  
    }  
     </script>  
     </head>  
     <body>  
     <input id="Digits" type="text" name="Digits" size="20" />  
     <input id="Convert" type="button" value="Convert" name="Convert" onclick="Result.value = convertCurrency(Digits.value);" />  
     <input id="Result" type="text" name="Result" size="60" />  
    </body>  
    </html>
  • 相关阅读:
    Can we call an undeclared function in C++?
    Template Metaprogramming in C++
    Templates and Default Arguments
    Templates and Static variables in C++
    Default Assignment Operator and References
    Advanced C++ | Conversion Operators
    Use of explicit keyword in C++
    When should we write our own assignment operator in C++?
    Copy constructor vs assignment operator in C++
    VMWare关闭beep声
  • 原文地址:https://www.cnblogs.com/top5/p/1891748.html
Copyright © 2011-2022 走看看