如何获取 toLocaleString() 方法的小数和千位分隔符?

Posted

技术标签:

【中文标题】如何获取 toLocaleString() 方法的小数和千位分隔符?【英文标题】:How to get Decimal and Thousand separator of toLocaleString() method? 【发布时间】:2019-04-01 13:59:53 【问题描述】:

如何获取所选语言环境的 toLocaleString() 的十进制和千位分隔符?

例子:

var number = 123456.789;

// 德语使用逗号作为小数分隔符和句点表示千位

console.log(number.toLocaleString('de-DE'));
123.456,789

// 英文用句点作为小数分隔符,千位用逗号

console.log(number.toLocaleString('en-GB'));
123,456.789

有没有办法获取区域分隔符?

【问题讨论】:

@Amy 这个问题是关于如何获取当前语言环境中使用的字符,而这个问题没有解决这个问题。 【参考方案1】:

这样的东西应该可以工作(未经测试):

let thousandsSeparator = Number(1000).toLocaleString().charAt(1)
let decimalSeparator = Number(1.1).toLocaleString().charAt(1)

【讨论】:

西班牙语言环境中,千位分隔符直到数字10000 才会出现。所以这将是一个更好的 hack let thousandsSeparator = Number(10000).toLocaleString().charAt(2).【参考方案2】:

这可能会有所帮助。似乎有一个可以使用的国际 API。否则,您可以测试一个已知数字来检索它。

https://stackanswers.net/questions/how-do-i-find-the-decimal-separator-for-current-locale-in-javascript

【讨论】:

以上是关于如何获取 toLocaleString() 方法的小数和千位分隔符?的主要内容,如果未能解决你的问题,请参考以下文章

toLocaleString

JavaScript手册 | JS Array 对象中的toLocaleString() 方法

.toLocaleString() 未定义

java Date中方法toLocaleString过时的替代方案

如何在 JavaScript 中使用 toLocaleString() 和 tofixed(2)

new Date() 对象及方法: