function?convertCurrency(money) {
??//漢字的數(shù)字
??var?cnNums =?new?Array('零',?'壹',?'貳',?'叁',?'肆',?'伍',?'陸',?'柒',?'捌',?'玖');
??//基本單位
??var?cnIntRadice =?new?Array('',?'拾',?'佰',?'仟');
??//對(duì)應(yīng)整數(shù)部分?jǐn)U展單位
??var?cnIntUnits =?new?Array('',?'萬(wàn)',?'億',?'兆');
??//對(duì)應(yīng)小數(shù)部分單位
??var?cnDecUnits =?new?Array('角',?'分',?'毫',?'厘');
??//整數(shù)金額時(shí)后面跟的字符
??var?cnInteger =?'整';
??//整型完以后的單位
??var?cnIntLast =?'元';
??//最大處理的數(shù)字
??var?maxNum = 999999999999999.9999;
??//金額整數(shù)部分
??var?integerNum;
??//金額小數(shù)部分
??var?decimalNum;
??//輸出的中文金額字符串
??var?chineseStr =?'';
??//分離金額后用的數(shù)組,預(yù)定義
??var?parts;
??if?(money ==?'') {?return?''; }
??money = parseFloat(money);
??if?(money >= maxNum) {
????//超出最大處理數(shù)字
????return?'';
??}
??if?(money == 0) {
????chineseStr = cnNums[0] + cnIntLast + cnInteger;
????return?chineseStr;
??}
??//轉(zhuǎn)換為字符串
??money = money.toString();
??if?(money.indexOf('.') == -1) {
????integerNum = money;
????decimalNum =?'';
??}?else?{
????parts = money.split('.');
????integerNum = parts[0];
????decimalNum = parts[1].substr(0, 4);
??}
??//獲取整型部分轉(zhuǎn)換
??if?(parseInt(integerNum, 10) > 0) {
????var?zeroCount = 0;
????var?IntLen = integerNum.length;
????for?(var?i = 0; i < IntLen; i++) {
??????var?n = integerNum.substr(i, 1);
??????var?p = IntLen - i - 1;
??????var?q = p / 4;
??????var?m = p % 4;
??????if?(n ==?'0') {
????????zeroCount++;
??????}?else?{
????????if?(zeroCount > 0) {
??????????chineseStr += cnNums[0];
????????}
????????//歸零
????????zeroCount = 0;
????????chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
??????}
??????if?(m == 0 && zeroCount < 4) {
????????chineseStr += cnIntUnits[q];
??????}
????}
????chineseStr += cnIntLast;
??}
??//小數(shù)部分
??if?(decimalNum !=?'') {
????var?decLen = decimalNum.length;
????for?(var?i = 0; i < decLen; i++) {
??????var?n = decimalNum.substr(i, 1);
??????if?(n !=?'0') {
????????chineseStr += cnNums[Number(n)] + cnDecUnits[i];
??????}
????}
??}
??if?(chineseStr ==?'') {
????chineseStr += cnNums[0] + cnIntLast + cnInteger;
??}?else?if?(decimalNum ==?'') {
????chineseStr += cnInteger;
??}
??return?chineseStr;
}
截圖如下:
/**
* 將數(shù)值四舍五入(保留2位小數(shù))后格式化成金額形式(金額的形式比如19276.33,形成的格式是19,276.33)
*
* @param num 數(shù)值(Number或者String)
* @return 金額格式的字符串,如'1,234,567.45'
* @type String
*/
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num ="0";
sign = (num == (num =Math.abs(num)));
num =Math.floor(num*100+0.50000000001);
cents = num%100;
num =Math.floor(num/100).toString();
if(cents<10)
cents ="0" +cents;
for (var i =0;i
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num +'.' +cents);
}
/**
* 將數(shù)值四舍五入(保留2位小數(shù))(Number)
*
* @param num 數(shù)值(Number或者String)
* @return 金額格式的字符串,如'1234567.45'
* @type String
*/
function formatCurrency2(num) {
num = num !=null && num !=undefined ? num.toString().replace(/\$|\,/g,'') :"0";
if(isNaN(num))
num ="0";
sign = (num == (num =Math.abs(num)));
num =Math.floor(num*100+0.50000000001);
cents = num%100;
num =Math.floor(num/100).toString();
if(cents<10)
cents ="0" +cents;
return (((sign)?'':'-') + num +'.' +cents);
}
/**
* 將數(shù)值四舍五入(保留4位小數(shù))后格式化成匯率形式
*
* @param num 數(shù)值(Number或者String)
* @return 匯率格式的字符串,如'1,234,567.4233'
* @type String
*/
function formatRate(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num ="0";
sign = (num == (num =Math.abs(num)));
num =Math.floor(num*10000+0.50000000001);
cents = num%10000;
num =Math.floor(num/10000).toString();
if(cents<1000)
cents ="000" +cents;
for (var i =0;i
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num +'.' +cents);
};