【问题标题】:convert integer(long) to double in jsp在jsp中将整数(长)转换为双精度
【发布时间】:2010-12-31 08:49:08
【问题描述】:

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

以下是代码:

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

【问题讨论】:

    标签: jsp struts2 struts jsp-tags math


    【解决方案1】:

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

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

    【讨论】:

    • 那么 someIntegerValue1 和 someIntegerValue2 在 value1 和 value2 中相加。并且没有“不”的方式(我一直在用头撞它)来强制 jsp 表达式从“非浮点”点 jsp 变量的表达式中给出浮点答案。最后,我不得不更改 bean 并将 someIntegerValue1 和 someIntegerValue2 的类型更改为 Double 。那确实解决了它,并且答案是正确的。感谢 BalusC 的回复
    猜你喜欢
    • 2016-01-01
    • 2013-05-13
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2015-09-13
    相关资源
    最近更新 更多