当前位置: 首页 > 知识库问答 >
问题:

如何为欧洲语言设置数字格式

周作人
2023-03-14

我有一个Double:5096,54我需要将其格式化为:5.096,54(欧洲货币格式)。我正在尝试使用这段代码,但没有成功。

 Locale l = Locale.getDefault(); // ("fr" in my case)
 // Get the formatter for the specific locale
 NumberFormat formatter = NumberFormat.getNumberInstance(l);

 // Always 2 decimals
 formatter.setMinimumFractionDigits(2);
 formatter.setMaximumFractionDigits(2);

 // Format
 return formatter.format(d);

输出: 5 096,54,当我期待5 096,54时,知道它为什么失败吗?

共有2个答案

葛胜泫
2023-03-14

您可以执行以下操作:

Locale l = Locale.getDefault();
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(l);

DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator('.'); // setting the thousand separator
// symbols.setDecimalSeparator(','); optionally setting the decimal separator

formatter.setDecimalFormatSymbols(symbols);
formatter.setMinimumFractionDigits(2);
formatter.setMaximumFractionDigits(2);

String formattedString = formatter.format(yourDouble);
苏德容
2023-03-14

它在西班牙语言环境中为我工作:

    Double d = 5096.54;

    Locale l = Locale.getDefault(); 

    NumberFormat formatter = NumberFormat.getNumberInstance(l);

    formatter.setMinimumFractionDigits(2);
    formatter.setMaximumFractionDigits(2);

    String d1 = formatter.format(d);

结果:5.096,54

法语区域似乎使用了类似于空格的东西作为千位分隔符,您可以检查以下问题:

Java FRANCE/法语区域设置分隔符看起来像空间,但实际上不是

他们通过以下解决方法解决了这个问题:

DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(Locale.FRANCE);
DecimalFormatSymbols symbols = df.getDecimalFormatSymbols();
char thousandSep = symbols.getGroupingSeparator();

input =input.replace(thousandSep, '.'); 

您可以使用相同的解决方法,也可以使用西班牙语区域设置(或任何其他符合您需求的语言)

 类似资料:
  • 注:要在 Windows XP 中启用对简体中文的 GB18030 字体支持,请参阅 Illustrator CS4\简体中文 \小工具 \可选扩展 \GB18030 文件夹中的自述文件。 显示亚洲文字选项 默认情况下, Illustrator 隐藏 “字符 ”面板、 “段落 ”面板、 “OpenType”面板和 “文字 ”菜单中的亚洲文字选项。 1选择 “编辑 ”>“首选项 ”>“文字 ”(Wi

  • Illustrator 为设置亚洲字符格式提供了多种选项。例如,可以设置亚洲 Open Type 字体属性,使用“直排内横排”、“空格”、“分行缩排” 、“mojisoroe”、“标点挤压”、“避头尾”、“标点溢出”以及“重复字符处理”。另外,还可以将亚洲字体和罗马字体组合起来,创建复合字体。 注意:要在 Windows XP 中启用对简体中文的 GB18030 字体的支持,请参阅 Illustr

  • 我希望数字在我的EditText中显示,最多1位小数,没有前导零,例如25.0不像025.0 我该怎么做? 这是在Android系统中

  • 所以我想为碳设定语言,但我总是得到相同的结果。

  • 在设定期间您可选择用于 M600 的语言。 您可选择以下语言之一: 广东话(香港) 丹麦语 荷兰语 英语(美国、英国) 芬兰语 法语(法国、加拿大) 德语 印度尼西亚语 意大利语 日语 韩语 中文(台湾) 挪威语(巴克摩) 波兰语 葡萄牙语(巴西) 俄语 西班牙语(美国、西班牙、拉美) 瑞典语 泰语 土耳其语 越南语 请注意,您的智能手表最终会将您的语言设定复制到手机。换句话说,即如您在 M600

  • 问题内容: 我想将我的JVM的默认语言环境设置为。有哪些可能的选择呢? 我只知道一种选择 问题答案: 从Oracle参考: 应用程序的默认语言环境是通过三种方式确定的。首先,除非你已显式更改默认值,否则该 方法将返回Java虚拟机(JVM)首次加载时最初确定的语言环境。也就是说,JVM从主机环境中确定默认语言环境。主机环境的语言环境由主机操作系统和在该系统上建立的用户首选项确定。 其次,一些Jav