在网上查了许多资料都说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