java - 带有区域设置的数字格式给出错误的输出
问题描述
我想要挪威货币格式。我的代码是
NumberFormat numberFormat = NumberFormat.getNumberInstance(new Locale("no","NO"));
System.out.println(numberFormat.format(188800.99));
它给出了输出 188 800,99。但是挪威数字模式是 188.800,99 https://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html
解决方案
我不认为给定国家的模式是在官方文件/标准中定义的。在您提供的链接中,挪威的正确模式确实是 188.800,99,但是当我在维基百科上查看时,它说 188 800,99 在挪威是正确的格式。
作为一种解决方案,您可以搜索NumberFormat
适合您需要的解决方案,也可以创建自己的解决方案,如下所示:
DecimalFormat numberFormat = new DecimalFormat("#,##0.00");
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setDecimalSeparator(',');
decimalFormatSymbols.setGroupingSeparator('.');
numberFormat.setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(numberFormat.format(1881212800.9));
它将数字打印为1.881.212.800,90
。在该模式#,##0.00
中,散列表示可选数字和零所需数字。在这种情况下,逗号左边总是至少有一个数字,右边有两个。
推荐阅读
- azure - 如何使用 powershell 解锁 Azure AD 用户帐户?
- javascript - D3 v4:使用来自 XML Http 请求的 JSON 数据的条形图的线性刻度
- javascript - 如何从 window.print 中删除日期?
- javascript - 更改带有id的div中单击项目的链接 - jquery
- git - 如何从本地创建和推送 repo 到 gitub
- drupal - “file_save_data”中的 FILE_EXISTS_RENAME 有时不会重命名现有文件名,并且会为“file_managed”条目中的重复条目引发错误
- c++ - 使用 glDrawElements 绘制 std::vector
- python - 用 '#' 后跟数字分割字符串
- presto - Presto中各种内存的解释清楚
- firebase - 谁能建议我如何手动(而不是通过编程)将图像存储到firebase的存储部分?