<fmt:formatNumber> Тег
Стандартная библиотека тегов JSP
Тег <fmt:formatNumber> используется для форматирования чисел, процентов и валюты.
Синтаксис
<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>"/>
Атрибуты
Тег <fmt:formatNumber> имеет следующие атрибуты:
| Attribute | Описание | Обязательный | Значение по умолчанию |
|---|---|---|---|
| value | Число для отображения | Да | Отсутствует |
| type | Тип NUMBER, CURRENCY или PERCENT | нет | Number |
| pattern | Укажите пользовательский шаблон форматирования для вывода | нет | Отсутствует |
| currencyCode | Код валюты (когда type="currency") | нет | Зависит от локали по умолчанию |
| currencySymbol | Символ валюты (когда type="currency") | нет | Зависит от локали по умолчанию |
| groupingUsed | Группировать ли числа (TRUE или FALSE) | нет | истина |
| maxIntegerDigits | Максимальное количество цифр в целой части | нет | Отсутствует |
| minIntegerDigits | Минимальное количество цифр в целой части | нет | Отсутствует |
| maxFractionDigits | Максимальное количество цифр в дробной части | нет | Отсутствует |
| minFractionDigits | Минимальное количество цифр в дробной части | нет | Отсутствует |
| var | Переменная для хранения форматированного числа | нет | Вывод на страницу |
| scope | Область действия атрибута var | нет | page |
Если атрибут type равен percent или number, можно использовать несколько других атрибутов форматирования чисел. Атрибуты maxIntegerDigits и minIntegerDigits позволяют указать длину целой части. Если фактическое число превышает максимальное значение, заданное maxIntegerDigits, число будет усечено.
Есть несколько атрибутов, позволяющих указать количество цифр после десятичной точки. Атрибуты minFractionalDigits и maxFractionalDigits позволяют указать количество цифр после десятичной точки. Если фактическое число выходит за пределы указанного диапазона, число будет усечено.
Группировку цифр можно использовать для вставки запятой каждые три цифры. Атрибут groupingIsUsed используется для указания, применяется ли группировка цифр. При совместном использовании с атрибутом minIntegerDigits нужно быть очень внимательным, чтобы получить ожидаемый результат.
Вы можете использовать атрибут pattern. Этот атрибут позволяет включать указанные символы при форматировании чисел. В следующей таблице перечислены эти символы.
| Символ | Описание |
|---|---|
| 0 | Представляет цифру |
| E | Использует экспоненциальный формат |
| # | Представляет цифру; отображает 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>
<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>
Вывод следующий:
数字格式化: 格式化数字 (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
Другие расширения