你应该知道的把我们日常的金额转换为大写的Method

834 阅读1分钟

ex one

  • 方法1 vue计算属性
<template>
  <div>
    <p>
      <input type="text" v-model="num">
    </p>
    <!-- 显示金额的大写 -->
    <p>{{capitalizate}}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      num: "258"
    };
  },
  // 计算属性
  computed: {
    capitalizate() {
      let list = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
      let str = "";
      for (var i = 0; i < this.num.length; i++) {
        str += list[this.num[i]];
      }
      return str;
    }
  }
};
</script>

<style>
</style>
  • 方法二
smalltoBIG(price) {
        let fraction = ['角', '分'];
        let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
        let unit = [['圆', '万', '亿'], ['', '拾', '佰', '仟']];
        let head = price < 0 ? '欠' : '';
        price = Math.abs(price);
        let upper = '';
        for (let i = 0; i < fraction.length; i++) {
          upper += (digit[Math.floor(price * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
        }
        upper = upper || '整';
        price = Math.floor(price);
        for (let i = 0; i < unit[0].length && price > 0; i++) {
          let p = '';
          for (let j = 0; j < unit[1].length && price > 0; j++) {
            p = digit[price % 10] + unit[1][j] + p;
            price = Math.floor(price / 10);
          }
          upper = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + upper;
        }
        return head + upper.replace(/(零.)*零圆/, '圆').replace(/(零.)+/g, '零').replace(/^整$/, '零圆整');
      },