`
pengjianbo1
  • 浏览: 229399 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

formatNumber详解【转】

    博客分类:
  • JSTL
阅读更多

<fmt:formatNumber>

<fmt:formatNumber>标签用于对数字、货币、百分比数据作格式化处理。使用<fmt:formatNumber>标签的语法如下。

1种:不带body

<c:param name=< SPAN><c:out value=< SPAN>

1.            <fmt:formatNumber value="数值" [type="
{number|currency|percent}"
]  

2.                 [pattern="格式定制模式"
[currencyCode=
"货币代码"]  

3.                 [currencySymbol="货币符号"
[groupingUsed=
"{true|false}"]  

4.                 [maxIntegerDigits="最多的整数位数"
[minIntegerDigits=
"最少的整数位数"]  

5.                 [maxFractionDigits="最多的小数位数"]
[minFractionDigits=
"最少的小数位数"]  

6.                 [var="变量名"] [scope="{page|request
|session|application}"
]/> 

2种:带有body

1.            <fmt:formatNumber [type="{number|currency
|percent}"
] [pattern="格式定制模式"]  

2.                 [currencyCode="货币代码"] [currencySymbol="货币符号"]  

3.                 [groupingUsed="{true|false}"
[maxIntegerDigits=
"最多的整数位数"]  

4.                 [minIntegerDigits="最少的整数位数"
[maxFractionDigits=
"最多的小数位数"]  

5.                 [minFractionDigits="最少的小数位数"] [var="变量名"]  

6.                 [scope="{page|request|session|application}"]>  

7.                 要被格式化处理的数字  

8.            </fmt:formatNumber> 

<fmt:formatNumber>标签的属性说明详见表9-16

9-16  <fmt:formatNumber>标签的属性

数据类型

是否必选项

默认值

属性值的说明

value

String或数字

要被格式化的数值

type

String

number

指定被格式化的数

值的数据类型,

只能是numbercurrency

percent中的一种

pattern

String

定制的格式模式

currencyCode

String

ISO 4217标准中的货币代码,

仅当格式化货币数

据类型时有效

currencySymbol

String

货币符号,如¥;仅当格

式化货币数据类型时有效

groupingUsed

boolean

true

是否输出分隔符,

如:1,234,567

maxIntegerDigits

int

整数部分最多的整数位数

minIntegerDigits

int

整数部分最少的整数位数

maxFractionDigits

int

小数部分最多的小数位数

minIntegerDigits

int

小数部分最少的小数位数

var

String

存储格式化处理输出的

结果字符串的变量

scope

Strng

page

属性var中指定的变

量的有效范围

如果属性scope被指定了,则属性var也必须被指定。属性currencyCode中设置的值必须是ISO 4217标准中规定的有效代码。如果属性value中的值为nullempty,则不会作输出处理,即便是指定了var属性也会从scope属性指定的范围中把这个变量删除。如果格式化处理失败,则会将要格式化处理的数值转化为字符串输出。指定了属性var则不会作输出处理,只是把格式化的结果存入属性var指定的变量中。

如果处理的数据类型是percent,即百分比,则数值会被乘以100,再根据本地化设置来作输出处理,数值为".24"表示"24%",数值为"24"表示"2400%"。如下面的语句:

1.            <fmt:formatNumber type="percent" value="24"/> 

在美国区域设置下,输出为"2,400%",但在法国区域设置下,输出为"2400%"

货币数据有两个重要的特性:

1)有货币符号,如美元为"$",人民币为"",法郎为"F"

2)小数点后的位数有特定的标准,如人民币和美元是小数点后2位,但意大利里拉是不能带小数的。

如下面的语句:

1.            <fmt:formatNumber type="currency" value="78.74901"/> 

对于人民币输出为"78.75",对于意大利里拉输出为"L.79"

一般情况下,使用系统默认的货币代码即可,如果需要设置特定的贷币代码,就要设置属性currencyCode的值,如:"USD"表示美圆。常用的货币代码见表9-17所示。

9-17  常用的货币代码

货币代码

货币

CNY

人民币元

EUR

欧元

GBP

英镑

JPY

日圆

USD

美圆

需要更多的货币代码,可参见如下的网址:

1.            http://www.bsi-global.com/iso4217currency 

属性groupingUsed指出格式化数据时,是否加入分隔符,默认情况下是加入的。如下的语句:

1.            <fmt:formatNumber value="500000.01" groupingUsed="true" /> 

在英国区域设置下,输出为"500,000.01"。但如下的语句:

1.            fmt:formatNumber value="500000.01" groupingUsed="true" /> 

在英国区域设置下,输出为"500000.01"

maxIntegerDigitsminIntegerDigitsmaxFractionDigitsminFractionDigits4个属性用于设置数字位数。

如果整数部分位数少于minIntegerDigits,将在左边补0;如果多于maxIntegerDigits,将会截去前面多的位数。如果小数部分位数小于minFractionDigits,将在右边补0;如果多于maxFractionDigits,则会作四舍五入处理。

如数字"99.2",根据上述4个属性设置格式化之后的结果见表9-18所示。

9-18  数字位数控制情况示例

minInteger

Digits

maxInteger

Digits

minFraction

Digits

maxFraction

Digits

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics