商城网站前置审批爱链工具
在网上查了许多资料都说EL表达式无法取整,的确EL表达式除法结果为浮点型。
例如 8 / 7 , {8/7} , 8/7,{6/7} , 12 / 7 在 页 面 的 显 示 结 果 分 别 为 : 1.14285714285714280.85714285714285711.7142857142857142 现 在 我 的 目 的 是 只 取 前 面 的 整 数 , 此 时 我 用 的 是 E L 表 达 式 的 < f m t : f o r m a t N u m b e r / > 标 签 , 例 如 : < f m t : f o r m a t N u m b e r t y p e = " n u m b e r " v a l u e = " {12/7 } 在页面的显示结果分别为: 1.1428571428571428 0.8571428571428571 1.7142857142857142 现在我的目的是只取前面的整数,此时我用的是EL表达式的<fmt:formatNumber />标签,例如: <fmt:formatNumber type="number" value=" 12/7在页面的显示结果分别为:1.14285714285714280.85714285714285711.7142857142857142现在我的目的是只取前面的整数,此时我用的是EL表达式的<fmt:formatNumber/>标签,例如:<fmt:formatNumbertype="number"value="{8/7)}" maxFractionDigits=“0”/>
结果为1.
maxFractionDigits=“0"表示保留0位小数,即取整,注意:此时取的整数是四舍五入的。
如果是 1 / 7 结 果 就 是 0 , 如 果 是 {1/7}结果就是0,如果是 1/7结果就是0,如果是{6/7}结果就是1,此方法适合想四舍五入取整的。
当然想保留固定位小数只需将maxFractionDigits=“0"中的0做适当修改就可以了,想保留小数点后几位就改成几。
当然也有不四舍五入取整的方法。
例如:
<fmt:formatNumber type=“number” value=”${((13-13%7)/7)}”/>
如果用上面的方法结果为2,此方法结果为1,不同目的分别取之。
其实就是先得到余数,将余数减去再除,这样结果刚好是整数,也就不存在四舍五入的问题了。因为减去余数之后,正好整除,经过本人测试加上maxFractionDigits="0"已经不起作用了。
转载自:https://blog.csdn.net/debbykindom/article/details/5854750