在jsp中将整数(long)转换为double

时间:2009-12-31 08:16:06

标签: jsp struts2 struts jsp-tags math

我想对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个小时没有得到任何东西。

1 个答案:

答案 0 :(得分:2)

value2应该是double才能让它发挥作用。 31是EL中的long31.0是EL中的double

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