2018-04-28 JS實(shí)現(xiàn)將數(shù)字金額轉(zhuǎn)換為大寫(xiě)人民幣漢字的方法

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;

}

截圖如下:

dasd

/**

* 將數(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);

};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • JavaScript 1. type 類(lèi)型判斷 isString (o) {//是否字符串 returnObjec...
    Mr_ZhangH閱讀 643評(píng)論 0 1
  • functionchangeMoneyToChinese(money) { varcnNums= newArray...
    encoded閱讀 858評(píng)論 0 1
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,195評(píng)論 0 13
  • 今天是媽媽七十八歲的陽(yáng)生,若母親還在就七十八歲了,不能想象若活著會(huì)是啥模樣了?非常非常想她…… 思母 清明時(shí)節(jié)母親...
    張路兒閱讀 371評(píng)論 0 1
  • 今日收獲 產(chǎn)品設(shè)計(jì)實(shí)習(xí)生面試指南 練習(xí)從更高層面分析 app。忘掉顏色、排版和按鈕設(shè)計(jì),取而代之,深入思考app ...
    張軒銘閱讀 540評(píng)論 0 0