计算机金额函数,电脑计算机编程入门教程自学:原生JavaScript实现金额大写转换函数...

1 function transform(tranvalue) {

2   try {

3     var i = 1;

4     var dw2 = new Array("", "万", "亿"); //大单位

5     var dw1 = new Array("拾", "佰", "仟"); //小单位

6     var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用

7     //以下是小写转换成大写显示在合计大写的文本框中

8     //分离整数与小数

9     var source = splits(tranvalue);

10     var num = source[0];

11     var dig = source[1];

12     //转换整数部分

13     var k1 = 0; //计小单位

14     var k2 = 0; //计大单位

15     var sum = 0;

16     var str = "";

17     var len = source[0].length; //整数的长度

18     for (i = 1; i <= len; i++) {

19       var n = source[0].charAt(len - i); //取得某个位数上的数字

20       var bn = 0;

21       if (len - i - 1 >= 0) {

22         bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字

23       }

24       sum = sum + Number(n);

25       if (sum != 0) {

26         str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面

27         if (n == '0') sum = 0;

28       }

29       if (len - i - 1 >= 0) { //在数字范围内

30         if (k1 != 3) { //加小单位

31           if (bn != 0) {

32             str = dw1[k1].concat(str);

33           }

34           k1++;

35         } else { //不加小单位,加大单位

36           k1 = 0;

37           var temp = str.charAt(0);

38           if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位

39           str = str.substr(1, str.length - 1);

40           str = dw2[k2].concat(str);

41           sum = 0;

42         }

43       }

44       if (k1 == 3) //小单位到千则大单位进一

45       {

46         k2++;

47       }

48     }

49     //转换小数部分

50     var strdig = "";

51     if (dig != "") {

52       var n = dig.charAt(0);

53       if (n != 0) {

54         strdig += dw[Number(n)] + "角"; //加数字

55       }

56       var n = dig.charAt(1);

57       if (n != 0) {

58         strdig += dw[Number(n)] + "分"; //加数字

59       }

60     }

61     str += "元" + strdig;

62   } catch(e) {

63     return "0元";

64   }

65   return str;

66 }

67 //拆分整数与小数

68 function splits(tranvalue) {

69   var value = new Array('', '');

70   temp = tranvalue.split(".");

71   for (var i = 0; i < temp.length; i++) {

72     value[i] = temp[i];

73   }

74   return value;

75 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值