当前位置: 首页 > 面试题库 >

是否 使用格式设置货币格式时使用正确的数字分隔符?

邹桐
2023-03-14
问题内容

假设我有以下<f:convertNumber>格式设置货币类型的数字:

<f:convertNumber type="currency" locale="#{userSession.locale}" pattern="$###,###.###" />

用英语,一百万将等于一百万,而在德国,则应为1.000.000。我的问题是:如果使用上述模式,JSF是否会知道指定语言环境的数字格式并自动使用正确的分隔符?

如果没有,请您告诉我如何设置货币编号并同时指定正确的数字分隔符,我将不胜感激。


问题答案:

重要的是要了解和理解<f:convertNumber>标签在幕后的使用DecimalFormat。您可以在其javadoc中找到所有模式字符。

看来您希望DecimalFormat模式字符,.也实际上以最终格式使用。这是不正确的。它是真的仅仅 模式字符
(如等dMy等13759
SimpleDateFormat)。基本上,模式字符,告诉DecimalFormat打印给定语言环境指定的“分组分隔符”,并且等效地,模式字符.告诉DecimalFormat打印给定语言环境指定的“小数分隔符”。

实际上,要打印的实际字符取决于给定的语言环境。对于英语语言环境(locale="en"),正在打印的“分组分隔符”也只是巧合,,但是对于德语语言环境(locale="de"),正在打印的“分组分隔符”的确是.

无关
的具体问题,type的属性<f:convertNumber>有,如果完全没有影响pattern是指定的属性。该typeattribtue是在这个例子中基本上多余的,并且可以安全地无任何副作用除去。

如果删除该pattern属性,则实际上将使用该属性,并且会看到使用的是货币的默认模式,该模式与¤#,##0.00英语语言环境和`¤

<f:convertNumber type="currency" locale="#{userSession.locale}" currencySymbol="$" />

同样,请参阅DecimalFormat之前链接的javadoc。



 类似资料:
  • null 请帮我查一下上面的货币格式。

  • 问题内容: 我想知道是否有可能在Java中使用String.format方法给出一个在零之前的整数? 例如: 1将变为001 2将变为002 … 11将变为011 12将变为012 … 526将保留为526 … 目前,我尝试了以下代码: 不幸的是,它在数字之前带有3个空格。可以在数字前加零吗? 问题答案: 使用格式说明为整数。的装置,该数目将是零填充,如果它是少于三个(在这种情况下)位。 有关其他

  • 问题内容: 我需要显示此类货币格式,我们如何显示。 问题答案: 在HTML中 例如 您还可以推荐 https://docs.angularjs.org/api/ng/filter/currency

  • 我正在尝试使用函数。 而它应该打印$符号或美元? 我使用linux主机。 谢谢

  • 问题内容: 我有一个查询,它从表中返回金额: 这将返回如下金额: 我在碧玉报告中使用了上述金额。 但是,我希望报告中的输出显示为: JRXML代码段是: 我知道我必须使用模式。但是,我无法使其工作。 使用 不管用。 我想念什么?? 谢谢阅读! 问题答案: 你很亲密 应该管用。 您需要使用“¤”字符将其设置为“货币”格式。 如果您下载的iReports版本号与您的服务器相匹配,则会发现您的选择。

  • 问题内容: 有没有办法让这样的字符串的浮点值:,比其他? 我希望这取决于当前的网站语言,有时逗号可以用点代替。 问题答案: 您可以使用 -解析货币编号 手册中的示例: 给出: