【问题标题】:Number formatting, remove thousands separator数字格式,去掉千位分隔符
【发布时间】:2017-12-12 15:39:02
【问题描述】:

我希望格式化一个数字,使其具有“前导零”(因此字符串总是等长)。 - 虽然我可以作为备份手动执行此操作,但我希望使用最佳选项。 - 由于标准格式语法(如 pythons "{0:4d}".format(number) )似乎不可用,次优是使用国际化库?

我试过在小提琴中这样做:https://jsfiddle.net/f4202ne3/1/

let fmt = new Intl.NumberFormat('en-US', 
  {minimumIntegerDigits: 4,
  maximumFractionDigits: 0
});
m = 1;
n = 5001

console.log(m.toString(), fmt.format(m)) //"0001"
console.log(n.toString(), fmt.format(n)) ///"5000"

但是,这会显示“5,000”和“0,001”。如何将千位分隔符设置为一个值 ('')?

【问题讨论】:

标签: javascript internationalization number-formatting


【解决方案1】:

只需将useGrouping 选项设置为false

let fmt = new Intl.NumberFormat('en-US', {
  minimumIntegerDigits: 4,
  maximumFractionDigits: 0,
  useGrouping: false
});

【讨论】:

    【解决方案2】:

    你可以使用.pad字符串方法(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

    "1231".padStart(8,0)//00001231
    "131".padStart(8,0)//00000131
    

    【讨论】:

    • 虽然这解决了直接问题,但我仍然想知道如何设置千位分隔符。 (否则我会在不久的将来遇到这个问题,因为无论如何我都会使用它来将文本格式化为输出字段的货币)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2011-03-12
    • 1970-01-01
    • 2018-05-11
    相关资源
    最近更新 更多