English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tag <fmt:formatNumber>

Bibliothèque de balises standard JSP

Le tag <fmt:formatNumber> est utilisé pour formater des nombres, des pourcentages et des devises.

Format syntaxique

<fmt:formatNumber
  value="<string>"
  type="<string>"
  pattern="<string>"
  currencyCode="<string>"
  currencySymbol="<string>"
  groupingUsed="<string>"
  maxIntegerDigits="<string>"
  minIntegerDigits="<string>"
  maxFractionDigits="<string>"
  minFractionDigits="<string>"
  var="<string>"
  scope="<string>"/>

Attribut

Les attributs du tag <fmt:formatNumber> sont les suivants :

Attribut 描述 Est-ce nécessaire Valeur par défaut
value Nombre à afficher Oui
type NUMBER, CURRENCY ou PERCENT type Number
pattern Spécifiez un modèle de formatage personnalisé à utiliser pour la sortie
currencyCode Code monétaire (lorsque type="currency") Il dépend du région par défaut
currencySymbol Symbole monétaire (lorsque type="currency") Il dépend du région par défaut
groupingUsed Est-ce que le groupement des nombres est utilisé (TRUE ou FALSE) true
maxIntegerDigits 整型数最大的位数
minIntegerDigits 整型数最小的位数
maxFractionDigits 小数点后最大的位数
minFractionDigits 小数点后最小的位数
var 存储格式化数字的变量 打印到页面
scope var属性的作用域 page

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

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

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

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

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

示例演示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
  <title>JSTL fmt:formatNumber 标签</title>
</head>
<body>
<h2>Formatage des nombres :</h2>
<c:set var="balance" value="120000.2309" />
<p>Formatage des nombres (1): <fmt:formatNumber value="${balance}" 
            type="currency"/></p>
<p>Formatage des nombres (2): <fmt:formatNumber type="number" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatage des nombres (3): <fmt:formatNumber type="number" 
            maxFractionDigits="3" value="${balance}" /></p>
<p>Formatage des nombres (4): <fmt:formatNumber type="number" 
            groupingUsed="false" value="${balance}" /></p>
<p>Formatage des nombres (5): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatage des nombres (6): <fmt:formatNumber type="percent" 
            minFractionDigits="10" value="${balance}" /></p>
<p>Formatage des nombres (7): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatage des nombres (8): <fmt:formatNumber type="number" 
            pattern="###.###E0" value="${balance}" /></p>
<p> Dollars :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>

Résultat de l'exécution ci-dessous :

Formatage des nombres :
Formatage des nombres (1): ¥120,000.23
Formatage des nombres (2): 000.231
Formatage des nombres (3) : 120,000.231
Formatage des nombres (4) : 120000.231
Formatage des nombres (5): 023%
Formatage des nombres (6) : 12,000,023.0900000000%
Formatage des nombres (7): 023%
Formatage des nombres (8) : 120E3
Dollars : $120,000.23

Bibliothèque de balises standard JSP