Balise <fmt:formatNumber>
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
Autres extensions