代码

/**
 * 大数字转换,将大额数字转换为万、千万、亿等
 * @param value 数字值
 */
export function bigNumberTransform (value) {
  const newValue = [\'\', \'\', \'\']
  let fr = 1000
  let num = 3
  let text1 = \'\'
  let fm = 1
  while (value / fr >= 1) {
    fr *= 10
    num += 1
    // console.log(\'数字\', value / fr, \'num:\', num)
  }
  if (num <= 4) { //
    newValue[0] = parseInt(value / 1000) + \'\'
    newValue[1] = \'千\'
  } else if (num <= 8) { //
    text1 = parseInt(num - 4) / 3 > 1 ? \'千万\' : \'万\'
    // tslint:disable-next-line:no-shadowed-variable
    fm = text1 === \'万\' ? 10000 : 10000000
    if (value % fm === 0) {
      newValue[0] = parseInt(value / fm) + \'\'
    } else {
      newValue[0] = parseFloat(value / fm).toFixed(2) + \'\'
    }
    newValue[1] = text1
  } else if (num <= 16) { // 亿
    text1 = (num - 8) / 3 > 1 ? \'千亿\' : \'亿\'
    text1 = (num - 8) / 4 > 1 ? \'万亿\' : text1
    text1 = (num - 8) / 7 > 1 ? \'千万亿\' : text1
    // tslint:disable-next-line:no-shadowed-variable
    fm = 1
    if (text1 === \'亿\') {
      fm = 100000000
    } else if (text1 === \'千亿\') {
      fm = 100000000000
    } else if (text1 === \'万亿\') {
      fm = 1000000000000
    } else if (text1 === \'千万亿\') {
      fm = 1000000000000000
    }
    if (value % fm === 0) {
      newValue[0] = parseInt(value / fm) + \'\'
    } else {
      newValue[0] = parseFloat(value / fm).toFixed(2) + \'\'
    }
    newValue[1] = text1
  }
  if (value < 1000) {
    newValue[0] = value + \'\'
    newValue[1] = \'\'
  }
  return newValue.join(\'\')
}

 

版权声明:本文为jardeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jardeng/archive/2004/01/13/13566216.html