Balise <fmt:formatNumber>

JSP 标准标签库Bibliothèque de balises standard JSP

La balise <fmt:formatNumber> est utilisée pour formater les nombres, les pourcentages et les devises.

Syntaxe

<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>"/>

Attributes

La balise <fmt:formatNumber> possède les attributs suivants :

Attribut Description Requis Valeur par défaut
value Nombre à afficher Oui Aucune
type Type NUMBER, CURRENCY ou PERCENT non Number
pattern Spécifie un modèle de formatage personnalisé pour la sortie non Aucune
currencyCode Code de devise (lorsque type="currency") non Dépend de la locale par défaut
currencySymbol Symbole de devise (lorsque type="currency") non Dépend de la locale par défaut
groupingUsed Indique s'il faut regrouper les nombres (TRUE ou FALSE) non vrai
maxIntegerDigits Nombre maximal de chiffres entiers non Aucune
minIntegerDigits Nombre minimal de chiffres entiers non Aucune
maxFractionDigits Nombre maximal de chiffres fractionnaires non Aucune
minFractionDigits Nombre minimal de chiffres fractionnaires non Aucune
var Variable pour stocker le nombre formaté non Afficher sur la page
scope Portée de l'attribut var non page

Si l'attribut type est percent ou number, vous pouvez utiliser plusieurs autres attributs de formatage des nombres. Les attributs maxIntegerDigits et minIntegerDigits vous permettent de spécifier la longueur de la partie entière. Si le nombre effectif dépasse la valeur maximale spécifiée par maxIntegerDigits, le nombre sera tronqué.

Certains attributs vous permettent de spécifier le nombre de chiffres après la virgule décimale. Les attributs minFractionalDigits et maxFractionalDigits vous permettent de spécifier les chiffres après la virgule décimale. Si le nombre effectif dépasse la plage spécifiée, le nombre sera tronqué.

Le groupement des chiffres peut être utilisé pour insérer une virgule tous les trois chiffres. L'attribut groupingIsUsed sert à spécifier si le groupement des chiffres est utilisé. Lorsqu'il est utilisé conjointement avec l'attribut minIntegerDigits, vous devez être très prudent afin d'obtenir le résultat attendu.

Vous pouvez utiliser l'attribut pattern. Cet attribut vous permet d'inclure des caractères spécifiés lors du formatage des nombres. Le tableau suivant répertorie ces caractères.

Symbole Description
0 Représente un chiffre
E Utilise le format exponentiel
# Représente un chiffre ; affiche 0 s'il n'y en a pas ; les zéros de tête et les zéros de fin ne sont pas affichés.
. Point décimal
, Séparateur de groupement des chiffres
; Sépare les formats
- Utilise le préfixe négatif par défaut
% Pourcentage
? Pour mille
¤ Symbole monétaire ; remplacé par le symbole monétaire réel
X Spécifie les caractères qui peuvent être utilisés comme préfixe ou suffixe
' Met entre guillemets les caractères spéciaux dans un préfixe ou un suffixe


Exemple

<%@ 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>
<h3>数字格式化:</h3>
<c:set var="balance" value="120000.2309" />
<p>格式化数字 (1): <fmt:formatNumber value="${balance}" 
            type="currency"/></p>
<p>格式化数字 (2): <fmt:formatNumber type="number" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (3): <fmt:formatNumber type="number" 
            maxFractionDigits="3" value="${balance}" /></p>
<p>格式化数字 (4): <fmt:formatNumber type="number" 
            groupingUsed="false" value="${balance}" /></p>
<p>格式化数字 (5): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (6): <fmt:formatNumber type="percent" 
            minFractionDigits="10" value="${balance}" /></p>
<p>格式化数字 (7): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (8): <fmt:formatNumber type="number" 
            pattern="###.###E0" value="${balance}" /></p>
<p>美元 :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>

La sortie est la suivante :

数字格式化:

格式化数字 (1): ¥120,000.23

格式化数字 (2): 000.231

格式化数字 (3): 120,000.231

格式化数字 (4): 120000.231

格式化数字 (5): 023%

格式化数字 (6): 12,000,023.0900000000%

格式化数字 (7): 023%

格式化数字 (8): 120E3

美元 : $120,000.23

JSP 标准标签库Bibliothèque de balises standard JSP

Autres extensions