zoukankan      html  css  js  c++  java
  • 用fmt标签对EL表达式取整

    本篇文章转载自:https://blog.csdn.net/u013400939/article/details/47948541        

        一般来说我们是无法实现EL表达式取整的。对于EL表达式的除法而言,他的结果是浮点型。

                如:${6/7},他的结果是:0.8571428571428571。对于这个我们是无法来实现取整的。但是我们现在的目的就是要EL表达式来实现取整。这个时候需要用到<fmt:formatNumber />这个标签。该标签的说明如下:

              功能:该标签用来格式化数值�即设置特定语言环境下的数值输出方式�

              语法: <fmt:formatNumber value="数值" ......./>

              属性说明:Value�要转换的数值。�

                             Type�格式化方式(currency,number,percent) 。

                             Pattern�用户自定义的格式。

                             var�保存转换结果的变量。�

                             scope�变量的范围。

              如:<fmt:formatNumber type="number" value="${8/7)}" maxFractionDigits="0"/>  结果为1。

              其中maxFractionDigits="0"表示保留0位小数,这样就可以实现取整了。同时这里是按照四舍五入的规则来进行取整的。如果是${2/6}结果就是0,如果是${6/7}结果就是1。

             在这里我们同样也可以设置保留n为小数,仅需要设置maxFractionDigits="n"即可实现。

    例如${8/7} ,${6/7} ,${12/7 } 在页面的显示结果分别为:
    1.1428571428571428
    0.8571428571428571
    1.7142857142857142

    现在我的目的是只取前面的整数,此时我用的是EL表达式的<fmt:formatNumber />标签,例如:
    <fmt:formatNumber type="number" value="${8/7)}" maxFractionDigits="0"/>
    结果为1.
    maxFractionDigits="0"表示保留0位小数,即取整,注意:此时取的整数是四舍五入的。
    如果是${1/7}结果就是0,如果是${6/7}结果就是1,此方法适合想四舍五入取整的。
    当然想保留固定位小数只需将maxFractionDigits="0"中的0做适当修改就可以了,想保留小数点后几位就改成几。

    当然也有不四舍五入取整的方法。
    例如:
    <fmt:formatNumber type="number" value="${13-13%7)/7)}"/>
    如果用上面的方法结果为2,此方法结果为1,不同目的分别取之。
    其实就是先得到余数,将余数减去再除,这样结果刚好是整数,也就不存在四舍五入的问题了。因为减去余数之后,正好整除,经过本人测试加上maxFractionDigits="0"已经不起作用了

  • 相关阅读:
    XML 浏览器支持
    浏览器中的XML
    C/C++中判断某一文件或目录是否存在
    C/C++程序员必须熟练应用的开源项目 -- 转
    VC 中窗口的销毁
    sql proc触发异常处理回滚
    为Array 添加indexOf
    Js的两种post方式
    sql 针对多个id或名称的分割和组合
    sql 查看语句的性能
  • 原文地址:https://www.cnblogs.com/caotao0918/p/10168458.html
Copyright © 2011-2022 走看看