JSTL formatnumber标签未应用百分比类型

时间:2015-03-30 08:42:30

标签: format jstl

我必须以这种方式显示单个字段中数字格式和百分比行中两个数字之间的差异(差异)(%差异)。数字格式的差异正在显示但是当我 {{ 1}} ,然后它不会以百分比形式显示。为什么? 我的代码是 -

type="percentage"

1 个答案:

答案 0 :(得分:1)

可能会发生两件事。

1)使用formatNumber,您需要做出选择:使用TYPE或使用PATTERN,但不要同时使用两者。如果这样做,PATTERN将优先使用(将使用它,TYPE将被忽略)。因此,如果您选择使用TYPE,请将代码更改为:

<fmt:formatNumber value="${(r.st1_vs1_bag2_rb-row.st1_vs1_bag2_rb)}" maxFractionDigits="2" minIntegerDigits="2" var="mm" type="percent"/>

我只是删除了PATTERN。

或者,如果您选择使用PATTERN,请尝试(这取决于您提供的值的性质):

<fmt:formatNumber value="${(r.st1_vs1_bag2_rb-row.st1_vs1_bag2_rb)}" pattern="##.##" var="mm"/>

2)其次,我注意到你输出的变量“mm”为$ {(mm)}。我的猜测是允许引擎将你输入$ {..}的值解释为数字,然后将其处理,并将其转换为可能导致其丢失格式的字符串。

无论哪种方式,请确保将其更改为:

${mm}

注意:如果您可以提供传递给formatNumber的原始值的示例,我们可以更轻松地为您提供帮助。例如,如果没有格式化它会显示什么?

${(r.st1_vs1_bag2_rb-row.st1_vs1_bag2_rb)}