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"已经不起作用了

  • 相关阅读:
    MyBatis高级查询 存储过程
    MyBatis高级查询 一对多映射
    第20章-使用JMX管理Spring Bean
    第19章-使用Spring发送Email
    第18章-使用WebSocket和STOMP实现消息功能
    第17章-Spring消息
    第16章-使用Spring MVC创建REST API
    第15章-使用远程服务
    基于IKAnalyzer搭建分词服务
    第08章-使用Spring Web Flow
  • 原文地址:https://www.cnblogs.com/caotao0918/p/10168458.html
Copyright © 2011-2022 走看看