数字格式,去掉千位分隔符

Posted

技术标签:

【中文标题】数字格式,去掉千位分隔符【英文标题】: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”。如何将千位分隔符设置为一个值 ('')?

【问题讨论】:

NumberFormatoptions:developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 【参考方案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

【讨论】:

虽然这解决了直接问题,但我仍然想知道如何设置千位分隔符。 (否则我会在不久的将来遇到这个问题,因为无论如何我都会使用它来将文本格式化为输出字段的货币)

以上是关于数字格式,去掉千位分隔符的主要内容,如果未能解决你的问题,请参考以下文章

.NET 通用数字格式与千位分隔符

如何在 Dart 中将数字格式化为千位分隔符

如何格式化数字来定义千位分隔符?

带有千位分隔符和小数的数字格式(如有必要)

mySQL格式数字输出,千位分隔符

如何格式化带有千位分隔符和括号中的负数的数据透视表数字?