金额大写转换函数

JavaScript


function transform(tranvalue) {
    try {
        var i = 1;
        var dw2 = new Array("", "万", "亿"); //大单位
        var dw1 = new Array("拾", "佰", "仟"); //小单位
        var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
        //以下是小写转换成大写显示在合计大写的文本框中
        //分离整数与小数
        var source = splits(tranvalue);
        var num = source[0];
        var dig = source[1];
        //转换整数部分
        var k1 = 0; //计小单位
        var k2 = 0; //计大单位
        var sum = 0;
        var str = "";
        var len = source[0].length; //整数的长度
        for (i = 1; i <= len; i++) {
              var n = source[0].charAt(len - i); //取得某个位数上的数字
              var bn = 0;
              if (len - i - 1 >= 0) {
                bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
              }
              sum = sum + Number(n);
              if (sum != 0) {
                str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
                if (n == '0') sum = 0;
              }
              if (len - i - 1 >= 0) { //在数字范围内
                if (k1 != 3) { //加小单位
                      if (bn != 0) {
                        str = dw1[k1].concat(str);
                      }
                      k1++;
                } else { //不加小单位,加大单位
                      k1 = 0;
                      var temp = str.charAt(0);
                      if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
                      str = str.substr(1, str.length - 1);
                      str = dw2[k2].concat(str);
                      sum = 0;
                }
              }
              if (k1 == 3){ //小单位到千则大单位进一
                k2++;
              }
        }
        //转换小数部分
        var strdig = "";
        if (dig != "") {
              var n = dig.charAt(0);
              if (n != 0) {
                strdig += dw[Number(n)] + "角"; //加数字
              }
              var n = dig.charAt(1);
              if (n != 0) {
                strdig += dw[Number(n)] + "分"; //加数字
              }
        }
        str += "元" + strdig;
    } catch(e) {
        return "0元";
    }
    return str;
}
//拆分整数与小数
function splits(tranvalue) {
    var value = new Array('', '');
    temp = tranvalue.split(".");
    for (var i = 0; i < temp.length; i++) {
        value = temp;
    }
    return value;
}

原文地址:https://www.cnblogs.com/lalalagq/p/10213510.html

时间: 2024-08-30 16:27:43

金额大写转换函数的相关文章

原生JavaScript实现金额大写转换函数

function transform(tranvalue) { try { var i = 1; var dw2 = new Array("", "万", "亿"); //大单位 var dw1 = new Array("拾", "佰", "仟"); //小单位 var dw = new Array("零", "壹", "贰",

js浮点数计算问题 + 金额大写转换

一 js浮点数计算问题解决方案: 1.使用 NumberObject.toFixed(num) 方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 2.较精度计算浮点数 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m; t

Excel大小写转换函数

Excel中的大小写转换函数 (1).转换为全部小写字母:lower函数 (2).转换为全部大写字母:upper函数 (3).转换为首字母大写,其余小写字母:proper函数 三种函数的使用方式,如下图所示: 流程操作,如下图所示: 小知识,简而记之. 蓝的成长记系列: 原创作品,出自 "深蓝的blog" 博客 蓝的成长记--追逐DBA(1):奔波于路上,挺进山东 蓝的成长记--追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知 蓝的成长记--追逐DBA(3):古董上操

VC++编程中常用的字符串转换函数

VC++编程中经常遇到不同编码编码的字符串之间需要转换的情况,以下简单提供几个不同编码字符串之间的转换函数: ANSI 字符串和Unicode字符串之间的转换 //Convert wide char string to ANSI string BOOL WCharToMByte(LPCWSTR lpcwszStr,Std::string &str) { DWORD dwMinSize=0; LPSTR lpszStr=NULL; dwMinSize= WideCharToMultiByte(CP

1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

 1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端口号"就称为socket. 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接.socket本身有"插座"的意思,因此用来描述网络连 接的一对一关系. TCP/IP协议最早在BSD UNIX上实现,

JS 字符unicode转换函数

/**js Unicode编码转换*/ var decToHex = function(str) {    var res=[];    for(var i=0;i < str.length;i++)        res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);    return "\\u"+res.join("\\u");}var hexToDec = function(s

MySQL 转换函数与运算符

Table 12.14 转换函数(Cast Function) 名称 说明 BINARY 将 string 转换为二进制 string CAST() 将某个值转换为特定类型 CONVERT() 将某个值转换为特定类型 BINARY BINARY 运算符将紧随其后的 string 转换为 二进制字符串.主要用来强制进行按字节进行比较(byte by byte),字节而不是字符的字符.这使得字符串比较是区分大小写的, 不管原始的列定义是否是 BINARY 或者 BLOB.BINARY 也对字符串末尾

3字节浮点数在C#的转换函数

单片机中,浮点数常用3字节浮点数表示 将浮点数表示成如下形式进行存储: M为尾数,0<=M<1: E为阶码,是指数部分: C为基数,二进制数的C取2. 上位机从单片机中读取到的字节数据不能直接使用,需要进行转换,以下是在C#中用到的一个转换函数 1 //将3字节浮点数据转换成float 2 static double ToSingle3(byte A, byte B, byte C) 3 { 4 double v = 0; 5 int sign0 = (A & 0x80) == 0 ?

转换函数

一般来说,转换函数大家并不陌生.就是使用cast 和 convert 进行数据类型的转换来达到表达式的比较,语句的拼接等效果. 使用倒是很容易的.一般情况下这样使用就可以了. SELECT CONVERT(INT,'123') SELECT CAST('123' AS INT) 还有一个比较少用的,parse 函数.(PARSE 仅用于从字符串转换为日期/时间和数字类型. 对于一般的类型转换,请继续使用 CAST 或 CONVERT. 请记住,分析字符串值会带来一定的性能开销,这句是文档里面直接