您的位置:首页 > 编程语言 > Java开发

JSTL、JAVA将浮点数字输出格式化

2013-05-12 10:38 405 查看
由于EL表达式的运算结果是浮点数时(而且EL表达式的除运算结果也是浮点数,这和其他语言还有点不一样),在网页上显示一长串确实不雅。使用JSTL的fmt标签,可以实现对数字、货币、时间……的格式化显示。

首先在页面前导入该标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
prefix="fmt" %>

数字格式化(value部分可为EL表达式):

1.<fmt:formatNumber value="12" type="currency" pattern="$.00"/> //-- $12.00

2.<fmt:formatNumber value="12" type="currency" pattern="$.0#"/> //-- $12.0

3.<fmt:formatNumber value="1234567890" type="currency"/> //-- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)

4.<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/>// -- 123,456.79

5.<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> //-- 123,456.7

6.<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/>// -- 123,456.70

7.<fmt:formatNumber value="12" type="percent" /> //-- 1,200% (type 可以是currency、 number、 和percent)。

Java程序中格式化数字的代码:

DecimalFormat df = new DecimalFormat("格式");

String fmt =df.format(double);

“格式”部分自己定义:

符号 意义

0 一个数位

# 一个数位,前导零和追尾零不显示

. 小数点分割位置

, 组分隔符的位置

- 负数前缀

% 用100乘,并显示百分号

其他任何符号 在输出字符串中包括指定符号

数字用例:<fmt:formatNumber value="${order.orderAmount}" minFractionDigits="2"/>元

--------------------------------------时间格式 ----------------------------------------------------

jakarta-taglibs-standard-1.1.2

/lib---jstl.jar、standard.jar

/tld---fmt.tld

<%@ taglib uri="http://java.sun.com/jsp/jstl/ fmt"
prefix="fmt " %>

fmt:formatDate 的输出格式

<fmt:formatDate value="${isoDate}" type="both"/>

2004-5-31 23:59:59

<fmt:formatDate value="${date}" type="date"/>

2004-4-1

<fmt:formatDate value="${isoDate}" type="time"/>

23:59:59

<fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>

2004-5-31

<fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>

04-5-31

<fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>

2004-5-31

<fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>

2004年5月31日

<fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>

2004年5月31日 星期一

<fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>

23:59:59

<fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>

下午11:59

<fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>

23:59:59

<fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>

下午11时59分59秒

<fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>

下午11时59分59秒 CDT

<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>

星期四, 四月 1, 2004 13:30:00 -0600

<fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>

31 五月 04, 11:59:59 下午 中央夏令时

<fmt:formatDate value="${question.questiondate}" type="time" timeStyle="full" pattern ="yyyy-MM-dd HH:mm"/>

2009-01-11 00:28

---------------------------------------------------------------------

格式模式

d 月中的某一天。一位数的日期没有前导零。

dd 月中的某一天。一位数的日期有一个前导零。

ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。

dddd 周中某天的完整名称,在 DayNames 中定义。

M 月份数字。一位数的月份没有前导零。

MM 月份数字。一位数的月份有一个前导零。

MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。

MMMM 月份的完整名称,在 MonthNames 中定义。

y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。

yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

yyyy 包括纪元的四位数的年份。

gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

h 12 小时制的小时。一位数的小时数没有前导零。

hh 12 小时制的小时。一位数的小时数有前导零。

H 24 小时制的小时。一位数的小时数没有前导零。

HH 24 小时制的小时。一位数的小时数有前导零。

m 分钟。一位数的分钟数没有前导零。

mm 分钟。一位数的分钟数有一个前导零。

s 秒。一位数的秒数没有前导零。

ss 秒。一位数的秒数有一个前导零。

时间用例:<fmt:formatDate value="${ctocOrder.buyerReleaseTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: