数字类型钱币转换为大写

做金融网站,免不了将数据转换为钱币的那种中文,今天做一个将算出来的数据在页面显示为大写的中午,还是繁体字那种,这给我纠结的!

好吧,先粘上我的劳动成果吧~

js代码,convertCurrency是一个方法,复制即可。

//小写金额转大写金额
function convertCurrency(currencyDigits) {
    var MAXIMUM_NUMBER = 99999999999.99;
    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 =(""+currencyDigits).indexOf(".")==-1? "":"元";
    var CN_TEN_CENT = "角";
    var CN_CENT = "分";
    var CN_INTEGER = "";  

    var integral;
    var decimal;
    var outputCharacters;
    var parts;
    var digits, radices, bigRadices, decimals;
    var zeroCount;
    var i, p, d;
    var quotient, modulus;  

    currencyDigits = currencyDigits.toString();   

    currencyDigits = currencyDigits.replace(/,/g, "");
    currencyDigits = currencyDigits.replace(/^0+/, ""); 

    if (Number(currencyDigits) > MAXIMUM_NUMBER) {
      globalUtil.errorMsg(globalErrorMsg[‘100404‘]);
      return "";
    }
    parts = currencyDigits.split(".");
    if (parts.length > 1) {
      integral = parts[0];
      decimal = parts[1];
      decimal = decimal.substr(0, 2);
    }
    else {
      integral = parts[0];
      decimal = "";
    }
    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);
    outputCharacters = "";
    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;
    }
    if (decimal != "") {
      for (i = 0; i < decimal.length; i++) {
       d = decimal.substr(i, 1);
       if (d != "0") {
        outputCharacters += digits[Number(d)] + decimals[i];
       }
      }
    }
    if (outputCharacters == "") {
      outputCharacters = CN_ZERO + CN_DOLLAR;
    }
    if (decimal == "") {
      outputCharacters += CN_INTEGER;
    }
    outputCharacters = CN_SYMBOL + outputCharacters;
    return outputCharacters;
}

贾哥说:恭喜你,你完成了数据转换,马上快到6点了,你可以下班了,别忘记了写日报..............

哈哈,下班啦~

对了,记得自己在网上看的,说支持负数什么的,个人觉得干嘛是负数?不符合实际啊,不可以在文本框做一个onkeyup事件,不允许输入负数。

时间: 2024-11-09 02:03:14

数字类型钱币转换为大写的相关文章

Java编写钱币转换为大写程序

import java.text.DecimalFormat; public class ChangeMonney { private static final String[] STR_UNIT = {"零", "壹", "贰", "叁", "肆", "伍",         "陆", "柒", "捌", "玖&qu

将金额数字转换为大写汉字的js函数

1 //将金额数字转换为大写汉字的函数 2 function convertCurrency(money) { 3 //汉字的数字 4 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 5 //基本单位 6 var cnIntRadice = new Array('', '拾', '佰', '仟'); 7 //对应整数部分扩展单位 8 var cnIntUnits = new Array('', '

java -------- String类型转换为数字类型

将 String类型转换为数字类型的时候要注意,数据类型的范围 整型: byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的6

数字类型和字符串类型

1.bin()函数将十进制转换成而进制 2.oct()函数将十进制转换成八进制 3.hex()函数将十进制转换成十六进制 十六进制表示:0-9 a b c d e f 4.数字类型的特性: 只能存放一个值 一经定义,不可更改 直接访问 分类:整型,布尔,浮点,复数 5.字符串类型 引号包含的都是字符串类型 S1='hello world'  s="hello world" s2="""hello world""" s3='''

javascript类型系统——Number数字类型

× 目录 [1]定义 [2]整数 [3]浮点数[4]科学记数[5]数值精度[6]数值范围[7]特殊数值[8]转成数值[9]实例方法 前面的话 javascript只有一个数字类型,它在内部被表示为64位的浮点数,和java的double数字类型一样.与其他大多数编程语言不同的是,它没有分离出整数类型,所以1和1.0的值相同.这提供了很大的方便,避免了一大堆因数字类型导致的错误 数字Number是javascript中基本的原始数据类型,同时javascript也支持Number对象,它是一个原始

Python数据结构之数字类型

数字类型 种类 数字类型的关系 数字类型转换 数字运算 数学函数 随机数函数 三角函数 数学常量 一.种类 整数型(int) 整数型定义上也可成短整型,理论上有范围的限制,取值范围为:在32位机器上int的范围是:  -2**31-2**31-1,即-2147483648-2147483647 在64位机器上int的范围是: -2**63-2**63-1,即-9223372036854775808-9223372036854775807,如果超过这个范围就可以使用长整型,不过必须在结尾写上大写的

数据结构之数字类型和字符串类型

数字类型和字符串类型 1.bin()函数将十进制转换成而进制 2.oct()函数将十进制转换成八进制 3.hex()函数将十进制转换成十六进制 十六进制表示:0-9 a b c d e f 4.数字类型的特性: 只能存放一个值 一经定义,不可更改 直接访问 分类:整型,布尔,浮点,复数 5.字符串类型 引号包含的都是字符串类型 S1='hello world'  s="hello world" s2="""hello world""&q

javascript中字符串向数字类型的自动转换

js中类型的转换依环境而定,当字符串向数字类型(浮点)转换时,有几种情况: 1.加号连接符引导为字符拼接: console.log("2"+1); 21 console.log(1+"2"+1); 121 2.其余情况引导为数字计算: console.log(0-"2"+1); -1 console.log("2"*2); 4 console.log(1*"2"+1); 3 3.当字符串带非数字时返回NaN

python之数字类型

1. 支持类型 python支持多种数字类型:整形,长整型,布尔型,双精度浮点型,十进制浮点型,复数注意:给数字对象重新赋值,实际上并没有更新该对象的原始数字(数字对象immutable),只是重新生成一个新的数值对象,并指向它. 复数 >>> aComplex = -3.1-4.2j >>> aComplex (-3.1-4.2j) >>> aComplex.real -3.1 >>> aComplex.imag -4.2 >