<fmt:formatNumber> 标签

<fmt:formatNumber>标签用于格式化数字,百分比,货币。

语法格式

  1. <fmt:formatNumber
  2. value="<string>"
  3. type="<string>"
  4. pattern="<string>"
  5. currencyCode="<string>"
  6. currencySymbol="<string>"
  7. groupingUsed="<string>"
  8. maxIntegerDigits="<string>"
  9. minIntegerDigits="<string>"
  10. maxFractionDigits="<string>"
  11. minFractionDigits="<string>"
  12. var="<string>"
  13. scope="<string>"/>

属性

<fmt:formatNumber>标签有如下属性:

属性描述是否必要默认值
value要显示的数字
typeNUMBER,CURRENCY,或 PERCENT类型Number
pattern指定一个自定义的格式化模式用与输出
currencyCode货币码(当type="currency"时)取决于默认区域
currencySymbol货币符号 (当 type="currency"时)取决于默认区域
groupingUsed是否对数字分组 (TRUE 或 FALSE)true
maxIntegerDigits整型数最大的位数
minIntegerDigits整型数最小的位数
maxFractionDigits小数点后最大的位数
minFractionDigits小数点后最小的位数
var存储格式化数字的变量Print to page
scopevar属性的作用域page

如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。

有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。

数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。

您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。

符号描述
0代表一位数字
E使用指数格式
#代表一位数字,若没有则显示 0,前导 0 和追尾 0 不显示。
.小数点
,数字分组分隔符
;分隔格式
-使用默认负数前缀
%百分数
?千分数
¤货币符号,使用实际的货币符号代替
X指定可以作为前缀或后缀的字符
'在前缀或后缀中引用特殊字符

实例演示

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
  5. <html>
  6. <head>
  7. <title>JSTL fmt:formatNumber 标签</title>
  8. </head>
  9. <body>
  10. <h3>数字格式化:</h3>
  11. <c:set var="balance" value="120000.2309" />
  12. <p>格式化数字 (1): <fmt:formatNumber value="${balance}"
  13. type="currency"/></p>
  14. <p>格式化数字 (2): <fmt:formatNumber type="number"
  15. maxIntegerDigits="3" value="${balance}" /></p>
  16. <p>格式化数字 (3): <fmt:formatNumber type="number"
  17. maxFractionDigits="3" value="${balance}" /></p>
  18. <p>格式化数字 (4): <fmt:formatNumber type="number"
  19. groupingUsed="false" value="${balance}" /></p>
  20. <p>格式化数字 (5): <fmt:formatNumber type="percent"
  21. maxIntegerDigits="3" value="${balance}" /></p>
  22. <p>格式化数字 (6): <fmt:formatNumber type="percent"
  23. minFractionDigits="10" value="${balance}" /></p>
  24. <p>格式化数字 (7): <fmt:formatNumber type="percent"
  25. maxIntegerDigits="3" value="${balance}" /></p>
  26. <p>格式化数字 (8): <fmt:formatNumber type="number"
  27. pattern="###.###E0" value="${balance}" /></p>
  28. <p>美元 :
  29. <fmt:setLocale value="en_US"/>
  30. <fmt:formatNumber value="${balance}" type="currency"/></p>
  31. </body>
  32. </html>

运行结果如下:

  1. 数字格式化:
  2.  
  3. 格式化数字 (1): 120,000.23
  4.  
  5. 格式化数字 (2): 000.231
  6.  
  7. 格式化数字 (3): 120,000.231
  8.  
  9. 格式化数字 (4): 120000.231
  10.  
  11. 格式化数字 (5): 023%
  12.  
  13. 格式化数字 (6): 12,000,023.0900000000%
  14.  
  15. 格式化数字 (7): 023%
  16.  
  17. 格式化数字 (8): 120E3
  18.  
  19. 美元 : $120,000.23