js實(shí)現(xiàn)人民幣大寫(xiě)金額形式轉(zhuǎn)換
來(lái)源:易賢網(wǎng) 閱讀:1479 次 日期:2016-07-06 14:22:24
溫馨提示:易賢網(wǎng)小編為您整理了“js實(shí)現(xiàn)人民幣大寫(xiě)金額形式轉(zhuǎn)換”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)人民幣大寫(xiě)金額形式轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下

本文實(shí)例為大家分享了js實(shí)現(xiàn)金額轉(zhuǎn)大寫(xiě)的相關(guān)代碼,供大家參考,具體內(nèi)容如下:

function convertCurrency(num) { //轉(zhuǎn)成人民幣大寫(xiě)金額形式

  var str1 = '零壹貳叁肆伍陸柒捌玖'; //0-9所對(duì)應(yīng)的漢字

  var str2 = '萬(wàn)仟佰拾億仟佰拾萬(wàn)仟佰拾元角分'; //數(shù)字位所對(duì)應(yīng)的漢字

  var str3; //從原num值中取出的值

  var str4; //數(shù)字的字符串形式

  var str5 = ''; //人民幣大寫(xiě)金額形式

  var i; //循環(huán)變量

  var j; //num的值乘以100的字符串長(zhǎng)度

  var ch1; //數(shù)字的漢語(yǔ)讀法

  var ch2; //數(shù)字位的漢字讀法

  var nzero = 0; //用來(lái)計(jì)算連續(xù)的零值是幾個(gè)

  num = Math.abs(num).toFixed(2); //將num取絕對(duì)值并四舍五入取2位小數(shù)

  str4 = (num * 100).toFixed(0).toString(); //將num乘100并轉(zhuǎn)換成字符串形式

  j = str4.length; //找出最高位

  if (j > 15) {

    return '溢出';

  }

  str2 = str2.substr(15 - j); //取出對(duì)應(yīng)位數(shù)的str2的值。如:200.55,j為5所以str2=佰拾元角分

  //循環(huán)取出每一位需要轉(zhuǎn)換的值

  for (i = 0; i str3 = str4.substr(i, 1); //取出需轉(zhuǎn)換的某一位的值

    if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //當(dāng)所取位數(shù)不為元、萬(wàn)、億、萬(wàn)億上的數(shù)字時(shí)

      if (str3 == '0') {

        ch1 = '';

        ch2 = '';

        nzero = nzero + 1;

      } else {

        if (str3 != '0' && nzero != 0) {

          ch1 = '零' + str1.substr(str3 * 1, 1);

          ch2 = str2.substr(i, 1);

          nzero = 0;

        } else {

          ch1 = str1.substr(str3 * 1, 1);

          ch2 = str2.substr(i, 1);

          nzero = 0;

        }

      }

    } else { //該位是萬(wàn)億,億,萬(wàn),元位等關(guān)鍵位

      if (str3 != '0' && nzero != 0) {

        ch1 = "零" + str1.substr(str3 * 1, 1);

        ch2 = str2.substr(i, 1);

        nzero = 0;

      } else {

        if (str3 != '0' && nzero == 0) {

          ch1 = str1.substr(str3 * 1, 1);

          ch2 = str2.substr(i, 1);

          nzero = 0;

        } else {

          if (str3 == '0' && nzero >= 3) {

            ch1 = '';

            ch2 = '';

            nzero = nzero + 1;

          } else {

            if (j >= 11) {

              ch1 = '';

              nzero = nzero + 1;

            } else {

              ch1 = '';

              ch2 = str2.substr(i, 1);

              nzero = nzero + 1;

            }

          }

        }

      }

    } if (i == (j - 11) || i == (j - 3)) { //如果該位是億位或元位,則必須寫(xiě)上

      ch2 = str2.substr(i, 1);

    }

    str5 = str5 + ch1 + ch2;

    if (i == j - 1 && str3 == '0') { //最后一位(分)為0時(shí),加上“整”

      str5 = str5 + '整';

    }

  }

  if (num == 0) {

    str5 = '零元整';

  }

  if (str5.indexOf("分") == -1) {

    if (str5.indexOf("拾元零") > 0) {

      str5 = str5.replace("拾元零", "拾元");

    };

  }

  return str5;

}

function doConvert(m, n) {

  Ext.getCmp(m).on('change', function() {

    var objm = Ext.getCmp(m);

    var objn = Ext.getCmp(n);

    if (!(/^\d+(\.\d+)?$/.test(objm.getValue()))) {

      objn.setValue("");

    } else {

      var money = convertCurrency(objm.getValue());

      if (objm.getValue() == "") {

        objn.setValue("");

      } else {

        objn.setValue(money);

      }

    }

    var money = convertCurrency(objm.getValue());

    if (money.indexOf("拾元零") > 0) {

      if (money.indexOf("分") == -1) {

        objn.setValue(money.replace("拾元零", "拾元"));

      }

    };

  });

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:js實(shí)現(xiàn)人民幣大寫(xiě)金額形式轉(zhuǎn)換
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)