我想对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个小时没有得到任何东西。
答案 0 :(得分:2)
value2
应该是double
才能让它发挥作用。 31
是EL中的long
,31.0
是EL中的double
。
也就是说,JSP更倾向于演示,而不是用于某些算术。更干净(更少的头部)方法是在bean中进行数学运算并以通常的EL方式访问结果。