文档章节

用NumberFormat类实现格式化输出

f
 fqian
发布于 2017/03/28 17:52
字数 894
阅读 150
收藏 0

Java在java.text包中提供了API类NumberFormat,用于货币格式化,百分比格式化和数值格式化。

一. 货币格式化

注:currency ,货币,流通;Instance:例子,情况。

1、getCurrencyInstance()。静态方法,建立一个NumberFormat类的对象并返回引用,该引用指定货币格式为系统预设的货币格式。

    public static void main(String[] args){
        NumberFormat nf=NumberFormat.getCurrencyInstance();
        System.out.println(nf.format(123.658));
    }

运行结果:

¥123.56

2、getCurrencyInstance(Locale) 。静态方法,建立一个NumberFormat类的对象,并返回引用,该引用的货币格式由Locale指定。

  public static void main(String[] args){
      //Locale locale=Locale.US;
      NumberFormat  nf=NumberFormat.getCurrencyInstance(Locale.US);
      System.out.println(nf.format(1236.258));
  }

运行结果:

$1,236.26

3、format(anyNumberType)。返回由NumberFormat的静态方法所指定的输出格式,这个格式由字符串来表达。参数可以是数值类或者BigDecimal对象。

 

二. 百分比格式化

1、getPercentInstance()。静态方法,创建一个NumberFormat类的对象并返回其引用。该对象指定百分比格式为系统预设格式。

2、getPercentInstance(Locale)。静态方法,创建一个NumberFormat类的对象并返回引用。该对象的百分比格式由Locale来指定。

3、format(anyNumberType)。返回由NumberFormat的静态方法所指定的输出格式,这个格式由字符串来表达。参数可以是数值类型或者BigDecimal对象。

  public static void main(String[] args){
      double d=123.6958;
      NumberFormat nf=NumberFormat.getPercentInstance();
      System.out.println(nf.format(d));
      NumberFormat nf1=NumberFormat.getPercentInstance(Locale.CANADA);
      System.out.println(nf1.format(d));
  }

运行结果:

12,370%
12,370%

4、setMinimumFractionDigits(int)。设置最少小数点位数。

5、setMaximumFractionDigits(int)。设置最多小数位数。

  public static void main(String[] args){
      double d=123.6958;
      NumberFormat nf=NumberFormat.getPercentInstance();
      nf.setMinimumFractionDigits(4);//不足4位小数,则以0补位。
      System.out.println(nf.format(d));
      nf.setMaximumFractionDigits(1);//最多保留1位小数。
      System.out.println(nf.format(d));
      NumberFormat nf1=NumberFormat.getPercentInstance(Locale.CANADA);
      System.out.println(nf1.format(d));
      nf1.setMaximumFractionDigits(1);//最多保留1位小数,如无小数不补0。
      System.out.println(nf1.format(d));
  }

运行结果:

12,369.5800%
12,369.6%
12,370%
12,369.6%

 

三. 数值格式化

1.getNumberInstance(); 静态方法,创建一个NumberFormat类的对象并返回其引用。该对象指定数值格式为系统预设格式。

2.getNumberInstance(Locale); 静态方法,创建一个NumberFormat类的对象并返回引用。该对象的数值格式由Locale来指定。

3.format(anyNumberType);返回由NumberFormat的静态方法所指定的输出格式,这个格式由字符串来表达。参数可以是数值类型或者BigDecimal对象。

4.setMinimumFractionDigits(int)

5.setMaximumFractionDigits(int)

  public static void main(String[] args){
      double d=123456.3698;
      NumberFormat nf=NumberFormat.getNumberInstance();
      System.out.println(nf.format(d));
      nf.setMinimumFractionDigits(4);
      System.out.println(nf.format(d));
      NumberFormat nf01=NumberFormat.getNumberInstance(Locale.US);
      System.out.println(nf01.format(d));
      nf01.setMaximumFractionDigits(1);
      System.out.println(nf01.format(d));
  }

运行结果:

123,456.3698
123,456.37
123,456.4

 

四. 用NumberFormat类的子类DecimalFormat来完成格式化

DecimalFormat提供了许多用来规定数字格式的模式字符串,进行对数字的格式化处理。本文只讨论常用的几种:

1、“0”——表示一位数值;如没有,显示0。如“0000.0000”,整数位>4,按实际输出,<4前面补0,凑足4位。

2、“#”——表示任何位数的整数。如没有,则不显示。在小数点模式后使用,只表示一位小数,四舍五入。例如:

    # 无小数,小数部分四舍五入

    .# 整数部分不变,一位小数,四舍五入

    .## 整数部分不变,二位小数,四舍五入

3、“.”——表示小数点模式;

4、“,”与模式“0”一起使用,表示逗号

 public static void main(String[] args){
     double d1=123456.36987,d2=12.3698;
     
    DecimalFormat nf=new DecimalFormat("0000.000");
    System.out.println("d1="+nf.format(d1));
    System.out.println("d2="+nf.format(d2));
   
    nf=new DecimalFormat("#");
    System.out.println("d1="+nf.format(d1));
   
    nf=new DecimalFormat(".#");
    System.out.println("d1="+nf.format(d1));
   
    nf=new DecimalFormat(".###");
    System.out.println("d1="+nf.format(d1));
   
    nf=new DecimalFormat("0000,0000.0000");
    System.out.println("d1="+nf.format(d1));
   
 }

运行结果:

d1=123456.370
d2=0012.370
d1=123456
d1=123456.4
d1=123456.37
d1=0012,3456.3699

 

© 著作权归作者所有

f
粉丝 1
博文 28
码字总数 40643
作品 0
宁波
私信 提问
JAVA中计算百分比 格式化数字

这个是我在程序使用的例子: public String myPercent(int y,int z){ String baifenbi="";//接受百分比的值 double baiy=y1.0; double baiz=z1.0; double fen=baiy/baiz; //NumberFormat nf ......

阿丢丢
2014/06/10
3.3K
0
DecimalFormat的几种用法!

package com.lee.test; import java.text.DecimalFormat; import java.util.Locale; /** * DecimalFormat的几种用法! * @author lee * @depict NumberFormat.getInstance()方法返回NumberF......

AnyLiem
2015/07/07
647
0
Java的国际化与格式化

java程序都国际化思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供哪些相应的资源文件。资源文件就是key-value,每个资源文件的key可以保持不变...

西红柿的眼泪
2016/07/12
111
0
(JavaEE-13)国际化开发.md

JavaWeb-国际化 国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据 国际化又...

_-Leon-_
2014/07/18
131
0
NumberFormat用法记录

NumberFormat.getInstance()方法返回NumberFormat的一个实例(实际上是NumberFormat具体的一个子类,例如DecimalFormat), 这适合根据本地设置格式化一个数字。你也可以使用非缺省的地区设置,...

jeffsui
2013/05/30
5.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
1K
15
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部