您的位置:首页 > Web前端 > JavaScript

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

2017-04-27 12:40 666 查看
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); //传入想转换的金额数,限制两位小数

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: