【发布时间】:2017-02-14 05:16:51
【问题描述】:
我的 JavaScript toLocaleString() 在这里做了一些奇怪的事情。如果我有一个小于 1000 的数字,它将给我点作为十进制分隔符,但如果我有一个大于 1000 的数字,它将给我逗号作为十进制分隔符。
我的语言环境设置使用点作为千位分隔符,逗号作为十进制分隔符。
这是我使用代码的方式:
sellingPrice.toLocaleString(undefined, { minimumFractionDigits: 2 }
如果 sellPrice 是700,它会给我700.00
如果 sellPrice 是7000,它会给我7.000,00
但结果是一样的
为什么会这样?
【问题讨论】:
-
Looks good to me. 检查您的 Chrome 的语言环境。
window.navigator.language -
对于
7000和700,这将分别返回7.000,00和700,00~number.toLocaleString('de', {minimumFractionDigits: 2}) -
如何准确设置格式? javascript 将遵循什么设置?
-
@Phil 提到,这是因为您的语言环境设置不正确。使用
number.toLocaleString('en', {minimumFractionDigits: 2}),它应该可以正常工作。 -
如果您希望
locale是动态的,请使用@malllendeo 提到的内容...类似于number.toLocaleString(window.navigator.language, {minimumFractionDigits: 2})
标签: javascript internationalization number-formatting