7.5.2 算术运算符
EL中的算术运算符用于对整数和浮点数进行算述运算。算术运算符有5种,包括+、-、*、/(div)和%(mod),分别对应于加、减、乘、除和取余(也可以称为取模)5种运算。其中“-”既可以用作减号,也可以用作负号;“/”和“div”在进行除法运算时,无论操作数是整数,还是浮点数,运算结果都是浮点点。在使用算术运算符时应注意以下几点:
l 对于这5种算术运算符,如果两个操作数都是null,则运算结果为0,如${null / null}、${null * null}都输出“0”。
2 对于“+”、“-”和“*”运算符,只要某一个操作数为null,则将null作为0对待,例如,${null - 10}输出“-10”,${1 + null}输出“1”、${null * 20}输出“0”。
3 对于“/”和“div”运算符,如果分母为null或0,则执行结果为“Infinity”,例如,${10 / null}和${20 div null}都输出“Infinity”。
4 对于“%”和“mod”运算符,如果分母为null或0,则会抛出异常。例如,${20 % 0}、${10 mod null}都会抛出异常。
5 如果两个操作数一个是整数,另一个是浮点数,则运算结果是浮点数。例如,${20 + 22.0}输出“42.0”。
6 如果两个操作数有一个或两个是字符串,并且字符串可以转换成数字(整数或浮点数),则EL引擎会进行自动转换。例如,${"20" + 10}输出“30”,${-"1.5"}输出“-1.5”。
表7.2是上述5个算术运算符的应用举例。
算术运算符 | 执行结果 | 算术运算符 | 执行结果 |
${1 + 2} | 3 | ${6 div 2} | 3.0 |
${1.5 + 3} | 4.5 | ${7 / null} | Infinity |
${1.0 + 2} | 3.0 | ${7 % 2} | 1 |
${-20} | -20 | ${7 mod 5} | 2 |
${2 * 3} | 6 | ${"20" * 2} | 40 |
${5 / 3} | 1.6666666666666667 | ${10 mod null} | 抛出异常 |
${8 * null} | 0 | ${99 mod 0} | 抛出异常 |
表7.2 算术运算符的应用举例