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

  • 相关阅读:
    Binary Tree Inorder Traversal
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Majority Element
    Excel Sheet Column Number
    Reverse Bits
    Happy Number
    House Robber
    Remove Linked List Elements
    Contains Duplicate
  • 原文地址:https://www.cnblogs.com/caotao0918/p/10168458.html
Copyright © 2011-2022 走看看