使用fmt:formatNumber格式化数字
时间:2018-11-15 12:58:02 来源:igfitidea点击:
JSTL为您提供了fmt:formatNumber
来对数字以不同的形式进行格式化。
fmt:formatNumber
的基本用法如下:
<fmt:formatNumber value="value" />
value属性接受任何数字。fmt:formatNumber
会根据客户端web浏览器设置的语言环境locale
或者服务器端web应用程序设置的语言环境locale
来格式化数字。
例如:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>数字格式化</title> </head> <body> <c:set var="val" value="10.53" /> <fmt:setLocale value="fr_FR"/> <fmt:formatNumber value="${val}" /> <fmt:setLocale value="zh_CN"/> <fmt:formatNumber value="${val}" /> </body> </html>
在上面的示例中,首先定义一个变量并将其值设置为200.51。然后
我们使用操作<fmt:setLocale>
覆盖了浏览器的语言环境locale
。 所以虽然浏览器的环境是中文,但是在fr_FR
中,显示的是法国格式200,51
。
我们将地区重新设置为zh_CN,它将显示为200.51。
<fmt:formatnumber>
的属性列表
属性名 | 说明 |
---|---|
value | 要格式化的数值。 |
type | 确定该值的格式:数字、货币或百分比。 |
pattern | 为输出指定自定义格式模式。 |
currencyCode | 仅适用于接受ISO 4217货币代码的货币格式。 |
currencySymbol | 只适用于货币格式化,接受货币符号 |
groupingUsed | 用于定义格式化数字的分组分隔符 |
maxIntegerDigits | 指定输出中格式化数字的整数部分的最大位数。 |
minIntegerDigits | 指定输出中格式化数字的整数部分的最小位数。 |
maxFractionDigits | 指定输出中格式化数字的小数部分的最大位数 |
minFractionDigits | 指定输出中格式化数字的小数部分的最小位数。 |
var | 导出的作用域变量的变量名 |
scope | var变量的作用域 |
使用<fmt:formatnumber>
的属性示例
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>数字格式化</title> </head> <body> <c:set var="val" value="37.79" /> <p>37.79的百分比: <fmt:setLocale value="zh_CN"/> <fmt:formatNumber value="${val}" type="percent" /> </p> <p>0.336的百分比形式: <fmt:setLocale value="zh_CN"/> <fmt:formatNumber value="0.336" type="percent" /> </p> </body> </html>
输出:
37.79的百分比: 3,779% 0.336的百分比形式: 34%
自定义数字显示格式
例如使用科学计数法的方式打印一个大数字:
<c:set var="val" value="314159265358" /> <fmt:formatNumber value="${val}" pattern="###.###E0" />
将显示为314.159E9
。
显示货币符号
设置locale
,并把type
属性设置为`` 可以显示当地的货币符号:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>数字格式化</title> </head> <body> <c:set var="val" value="19.90" /> <p> 美国货币 <fmt:setLocale value="en_US"/> <fmt:formatNumber value="${val}" type="currency" /> </p> <p> 德国货币 <fmt:setLocale value="de_DE"/> <fmt:formatNumber value="${val}" type="currency"/> </p> <p> 中国货币 <fmt:setLocale value="zh_CN"/> <fmt:formatNumber value="${val}" type="currency"/> </p> </body> </html>
输出:
美国货币 .90 德国货币 19,90 € 中国货币 ¥19.90