Skip to content

金额三位隔逗号

基本使用

使用案例:
getnumberThree(789556.55662266) 输出 789,556.56
getnumberThree(789556) 输出 789,556

vue
<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
import { getnumberThree } from 'vue-hkp-ui'

console.log(getnumberThree(789556.55662266))  //输出 789,556.55
console.log(getnumberThree(789556))  //输出 789,556

</script>

内部方法

vue
<script setup lang="ts">
function getnumberThree(nums:(number | string),decimal = 2,split = ','){
  let num=Number(nums)
  if (isFinite(num)) { // num是数字
    if (num === 0) { // 为0
      return num.toFixed(decimal)
    } else { // 非0
      var res = ''
      var dotIndex = String(num).indexOf('.')
      if (dotIndex === -1) { // 整数
        if (decimal === 0) {
          res = String(num).replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`)
        } else {
          res = String(num).replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`) + '.' + '0'.repeat(decimal)
        }
      } else { 
        const numStr = String((Math.round(num * Math.pow(10, decimal)) / Math.pow(10, decimal)).toFixed(decimal)) // 四舍五入,然后固定保留2位小数
        const decimals = numStr.slice(dotIndex, dotIndex + decimal + 1) // 截取小数位
        res = String(numStr.slice(0, dotIndex)).replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`) + decimals
      }
      return res
    }
  } else {
    return '--'
  }
}
</script>

removearray Params

参数说明类型默认值必传
nums当前金额array-true
decimal保留小数位数number2false
split三位一隔的符号string','false

Released under the MIT License.