JavaScript把阿拉伯数字的金额转换成大写金额

来源:互联网 发布:伴随矩阵的特征值 编辑:程序博客网 时间:2024/05/01 04:11

1.最近做项目有需要把数字金额转换成大写金额,看到一篇博文,有用到里面的算法,整理了一下,在博客分享一下。

function transferValue(value){    var isNaN = isNaN(value);    if(isNaN == false){        var newStr = value.toString();        if(newStr.split('.')[1].length >2){            alert("只支持两位小数的转换")            return        }    }else{        alert("不是一个数字,不能进行转换")        return    }    var capitalNum = "零壹贰叁肆伍陆柒捌玖",        moneyUnit = "万仟百拾亿仟百拾万仟百拾元角分",        moneyValueString = (value*100).toString(),        moneyValueLength = moneyValueString.length,        newMoneyUnit = moneyUnit.substr(moneyUnit.length-moneyValueLength),        count = 0,//记录传入金额中0的个数        million = 0, //记录万的个数        capital = ""; //记录大写金额    for(var i=1;i< moneyValueLength +1;i++){        var lowercasePer = moneyValueString.substr(i-1,1),//每一位小写字符(数字)            upperCasePer = capitalNum.substr(lowercasePer,1),//每一位小写数字对应的大写汉字            unit = newMoneyUnit.substr(i-1,1);        if(upperCasePer == ""){            upperCasePer = ""            if(unit == "亿"){            }else if(unit == ""){                upperCasePer = "";                million++;            }else if(unit == ""){            }else{                unit = "";            }            count=count+1;        }else{            if(count-million>0){                if(unit!=""){                    upperCasePer = ""+upperCasePer;                }            }            count= 0;        }        capital = capital + upperCasePer + unit    }    if(newstring.length!=1){        if(newstring.substr(newstring.length-2)=="00"){            capital = capital + "";        }else{            capital  = capital ;        }    }    return capital ;}transferValue(12345678.12); //传入想转换的金额数,限制两位小数

1 0