1

我想对 jsp 做算术运算。我正在使用 struts 标签 lib 标签

以下是代码:

    <s:set name="value1" value ="%{0.0}" />
    <s:set name="value2" value ="%{0.0}" />
    <s:set name="percent" value ="%{0.0}" />

    <s:iterator>
          <s:set name="value1" value ="%{#value1+ someIntegerValue1}" />
          <s:set name="value2" value ="%{#value2+ someIntegerValue2}" />
    </s:iterator>

    <s:set name="percent" value ="%{(#value1*100.0)/#value2}" />
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${percent}" />

现在最后一行总是四舍五入为整数值

比如如果 value1 = 3 , value2 = 31 。那么百分比应该等于 (3*100)/31 = 9.68

但是该死的东西输出到 9.00

<s:set name="percent" value ="%{(3*100.0)/31.0}" />
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${percent}" />

然后它正确输出 9.68 :S

有人可以帮忙吗?现在当我硬编码这个表达式

我一直在努力解决这个问题,谷歌搜索超过 2-3 个小时没有得到任何东西。

4

1 回答 1

2

value2应该是double让它工作。31longEL 中的 a 并且31.0是EL 中的 a double

也就是说,JSP 更倾向于表示,而不是一些算术的东西。更干净(更少头撞)的方法是在 bean 中进行数学运算并以通常的 EL 方式访问结果。

于 2009-12-31T15:16:31.963 回答