Java格式化数字技巧

应该是5.0以后推出的功能,类似于C语言的prinf,可以控制字符串输出格式。
主要使用的类:java.text.DecimalFormat

1。实例化对象,可以用如下两种方法:

DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();

因为DecimalFormat继承自NumberFormat。

2。设定小数位数
系统默认小数位数为3,如:

DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
System.out.println(df.format(12.3456789));

输出:12.346
现在可以通过如下方法把小数为设为两位:

df.setMaximumFractionDigits(2);
System.out.println(df.format(12.3456789));

则输出为:12.35

3。将数字转化为百分比输出,有如下两种方法:
(1)

df.applyPattern("##.##%");
System.out.println(df.format(12.3456789));
System.out.println(df.format(1));
System.out.println(df.format(0.015));

输出分别为:1234.57% 100% 1.5%
(2)

df.setMaximumFractionDigits(2);
System.out.println(df.format(12.3456789*100)+"%");
System.out.println(df.format(1*100)+"%");
System.out.println(df.format(0.015*100)+"%");

输出分别为:
1,234.57% 100% 1.5%

4。设置分组大小

DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
df1.setGroupingSize(2);
System.out.println(df1.format(123456789));

输出:1,23,45,67,89
还可以通过df1.setGroupingUsed(false);来禁用分组设置,如:

DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
df1.setGroupingSize(2);
df1.setGroupingUsed(false);
System.out.println(df1.format(123456789));

输出:123456789

5。设置小数为必须为2位

DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance();
df2.applyPattern("0.00");
System.out.println(df2.format(1.2));

输出:1.20
6。在页面上使用方式

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<! -- 导入标签 -- >
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My-JSP</title>
</head>
<body onload="window.status='Read complete';">
显示编号:
<fmt:formatNumber value="${number.parentCodeCid}" pattern="-00000000" type="number"></fmt:formatNumber>
显示时间:
<fmt:formatDate value="${ number.submitdate}" type="both"/>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值