js逻辑_数组添加千分位符

作用

返回这个数字在特定语言环境下的表示字符串

语法
num.toLocaleString(locales,[options])
1.locales
  • locales:缩写语言代码
    • locales 参数必须是一个 BCP 47 语言标记的字符串,或者是一个包括多个语言标记的数组;
    • 如果 locales 参数未提供或者是 undefined,返回本地操作系统指示语言的字符串;
    • 常用语言标记
      • “zh-Hans-CN” 中国 简写’zh’
      • “zh-Hans-CN-u-nu-hanidec” 、““zh-u-nu-hanidec””中文十进制数字
2.options
  • options:一个对象

    • style:格式化时使用的样式

      • “decimal” /ˈdesɪm(ə)l/ :表示纯数字格式 为默认值;
      • "currency " /ˈkʌrənsi/ : 表示货币格式;
      • “percent” : 表示百分比格式
    • currency :在货币格式化中使用的货币符号;

      • 若是style属性值为currency,必须设置此属性,否则会报错

        • Currency code is required with currency style

      • “USD”:美元

      • “EUR” 欧元

      • “CNY” 人民币

    • currencyDisplay:如何在货币格式化中显示货币

      • symbol 使用本地化的货币符号例如€ (默认)
      • code 使用国际标准组织货币代码
      • name 使用本地化的货币名称
    • useGrouping:是否使用分组分隔符

      • true:使用(默认)
      • false:不使用
    • 数字规范

      • [1]使用的有效数字的最大数量:maximumSignificantDigits
        • /sɪɡˈnɪfɪkənt/ /ˈdɪdʒɪts/
        • 可能的值是从 1 到 21;默认是 21.
      • [2]使用的有效数字的最小数目:minimumSignificantDigits
        • 可能的值是从 1 到 21;默认值是 1
      • [3]使用的整数数字的最小数目:minimumIntegerDigits
        • 可能的值是从 1 到 21,默认值是 1
      • [4]使用的小数位数的最小数目:minimumFractionDigits
        • 可能的值是从 0 到 20
          • 普通的数字和百分比格式默认为 0
          • 货币默认为2
      • [5]使用的小数位数的最大数目:maximumFractionDigits
        • 可能的值是从 0 到 20
          • 纯数字格式的默认值是minimumfractiondigits 和 3 中大的那一个
          • 货币格式默认值是minimumfractiondigits 和2中大的那个;
          • 百分比格式默认值为minimumfractiondigits和0中大的那个;
      • 设置了[1] [2]中任意一个,设置的[3] [4] [5] 将不起作用;
示例
  • 示例1-无参数

    • 123456789.123456789.toLocaleString() // '123,456,789.123'
      123456789.6666666.toLocaleString() // '123,456,789.667'
      
    • 默认 本地语言、纯数字格式、使用分组分隔符、小数位数为0-3位(超出截取,四舍五入)

  • 示例2-报错

    • 12345678.toLocaleString() // Invalid or unexpected token
      
    • 因为这个.不被认为是调用方法,而是认为是小数点-后面被认为是数字–>报错;

    • const num = 12345678
      num.toLocaleString() // '12,345,678'
      
  • 示例3-保留5位小数

    • 123456789.123456789.toLocaleString('zh',{maximumFractionDigits:5}) // '123,456,789.12346'
      
  • 示例4-百分位

    • const num = 123456789.123456789
      num.toLocaleString('zh',{style:'percent', useGrouping:false})
      // 12345678912%
      
  • 示例5-中文数字(并不是带个十分千万的那种)

    • const num = 123456789.123456789
      num.toLocaleString('zh-Hans-CN-u-nu-hanidec',{ useGrouping:false }) // 一二三四五六七八九.一二三
      
    • 0会转化为O;

      • const num = 101; num.toLocaleString('zh-u-nu-hanidec')
        // '一〇一'
        
案例1-转千分位符
changeString(num){
  if(!num && num!=0){
      return ''
  }
  let number = Number(num)
  if(isNaN(number)){
      return num
  }
  return number.toLocaleString()  
}
案例2-去掉千分位符
changeNumber(str){
  return + str.replace(/,/gi,'')
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值