将整数(长整数)转换为jsp中的双精度值
问题描述:
我想对jsp进行算术运算。我用struts标记库标签将整数(长整数)转换为jsp中的双精度值
以下是代码:
<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}" />
现在最后一行始终四舍五入为整数值
一样,如果值1 = 3,值2 = 31。然后百分比应等于(3 * 100)/ 31 = 9.68
BUT该死的东西输出到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小时没有得到任何东西。
答
value2
应该是double
才能使其正常工作。 31
是EL中的long
,而EL中的31.0
是double
。
也就是说,JSP更适合用于演示,而不是一些算术的东西。更干净(更少头痛)的方法是在bean中进行数学运算,然后按照常规的EL方式访问结果。
以及someIntegerValue1和someIntegerValue2被添加在value1和value2中。并且“没有”的方式(我一直在抨击我的头)来强制或强制jsp exptression从“非浮动”点jsp变量的表达式给予浮点回答。 最后,我不得不改变bean并将someIntegerValue1和someIntegerValue2的类型更改为Double。那确实解决了它,而且他的答案出来正确。 感谢您的回复BalusC – Ali 2010-01-01 14:54:44