gpt4 book ai didi

java - 了解 java.util.Locale 的奇怪输出

转载 作者:行者123 更新时间:2023-11-29 05:51:57 25 4
gpt4 key购买 nike

我认为 Locale 只是在适当的位置添加逗号,至少在数字的情况下是这样。但是我看到了我所尝试的不同输出。

我尝试了以下,

public static void main(String[] args) {
DecimalFormat df = null;

df = (DecimalFormat) DecimalFormat.getInstance(Locale.CHINESE);
System.out.println("Locale.CHINESE "+df.format(12345.45));

df = (DecimalFormat) DecimalFormat.getInstance(Locale.GERMAN);
System.out.println("Locale.GERMAN "+df.format(12345.45));
}

输出:

Locale.CHINESE 12,345.45
Locale.GERMAN 12.345,45

如果您仔细查看逗号,您会发现一个重大差异。

现在,javadoc for java.util.Locale

... An operation that requires a Locale to perform its task is called locale-sensitive and uses the Locale to tailor information for the user. For example, displaying a number is a locale-sensitive operation--the number should be formatted according to the customs/conventions of the user's native country, region, or culture ...

我看到逗号在另一个 Locale 中被解释为小数点,这真是一件奇怪的事情,因为值正在改变。

所以,帮助我理解这一点。 Locale 到底是什么?输出的剧烈变化不会导致代码/数据出现重大问题吗?

最佳答案

I had a perception that Locale is just about adding comma at proper positions at least in case of numbers.

不,正如您所见,它也会影响使用的符号。

So, help me understand this. What exactly is Locale? Won't the drastic change in output cause major issue in code/data?

只有在您没有正确使用它们的情况下:) 机器对机器的通信通常应该本地化;通常,如果您真的需要使用文本,最好使用 US 作为合理不变的语言环境。

参见 DecimalFormatSymbols有关特定于语言环境的更多详细信息。

关于java - 了解 java.util.Locale 的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com