Double以指数形式显示

问题描述 投票:0回答:1

我有这个 JSF .xhtml 代码:

<p:outputLabel value="#{bundle['my.bundle.name']} - #{Myclass.current.amount}"/>

Myclass.current.amount
是 Java 中的双精度数。转换有问题。例如,如果
Myclass.current.amount
等于
10000000
,它显示为
1.0E7
,但我想要
10000000
.

注意:我想要 JSF 中的解决方案,而不是 Java 中的解决方案。

我试过用

<f:convertNumber/>
构造,但是没用,原则上这不是我需要的

jsf primefaces el
1个回答
1
投票

您只能在包含数字的组件上使用

f:convertNumber
。如果您的组件值是
Some text and #{bean.someNumber}
,它首先评估该值,并且无法使用
Some text and 1.0E7
格式化结果字符串(例如
f:convertNumber
)。

没有记录,但是你可以

p:outputLabel
没有
value
属性,而是使用 body。所以:

<p:outputLabel for="...">Label value</p:outputLabel>

这允许您将数字放在它自己的组件中并对其进行格式化:

<p:outputLabel for="...">
  Some text
  <h:outputText value="#{testView.amount}">
    <f:convertNumber pattern="#"/>
  </h:outputText>
</p:outputLabel>
© www.soinside.com 2019 - 2024. All rights reserved.