`

DecimalFormat类 NumberFormat类

 
阅读更多
package com.test;

import java.text.DecimalFormat;
import java.text.NumberFormat;

public class FormatTest {

	public static void main(String[] args) {
		// System.out.print(format4(5));
		decimalFormatTest();
	}

	private static String formatNum(Double d) {
		String formatPattern = "#.0000";
		if (d == null) {
			return "-";
		} else {
			if (d == 0) {
				return "-";
			}
			return new DecimalFormat(formatPattern).format(d);
		}
	}

	private static String formatInt(Integer d) {
		String formatPattern = "#.0";
		if (d == null) {
			return "-";
		} else {
			if (d == 0) {
				return "-";
			}
			return new DecimalFormat(formatPattern).format(d);
		}
	}

	public static void decimalFormatTest() {
		//DecimalFormat df = new DecimalFormat("000,000.000¥");
		//DecimalFormat df = new DecimalFormat("###.###\u2030");
		//DecimalFormat df = new DecimalFormat("00.###%");
		//DecimalFormat df = new DecimalFormat("###,###.###¥");
		DecimalFormat df = new DecimalFormat("-###,###.###¥");
		String str = df.format(11222.84578);
		System.out.println(str);
		//结果:011,222.846¥
		//结果:11222845.78‰
		//结果:1122284.578%
		//结果: 11,222.846¥
		//结果: -11,222.846¥
	}

	public static String format3(Double f) {
		// 结果 5.00
		return String.format("%.2f", f);
	}

	public static String format4(int f) {
		NumberFormat nf = NumberFormat.getNumberInstance();
		nf.setMaximumFractionDigits(2);
		// setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。
		// setMaximumIntegerDigits(int) 设置数值的整数部分允许的最大位数。
		// setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。
		nf.setMinimumIntegerDigits(3); // 设置数值的整数部分允许的最小位数.
		return nf.format(f);
	}

	public static void format5() {
		// getPercentInstance() 返回当前缺省语言环境的百分比格式 输出 56%
		String format = NumberFormat.getPercentInstance().format(0.5555);
		System.out.println(format);
	}

	public static void format6() {
		// getCurrencyInstance()返回当前缺省语言环境的通用格式 ¥0.65
		String format = NumberFormat.getCurrencyInstance().format(0.654);
		System.out.println(format);
	}

	public static void format7() {
		// getInstance() 返回当前缺省语言环境的缺省数值格式。
		String format = NumberFormat.getInstance().format(0.684);
		System.out.println(format);
	}

}

 NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习惯进行数字的显示。

此类的定义如下:

public abstract class NumberFormat extends Format

MessageFormat 、DateFormat 、NumberFormat 是 Format 三个常用的子类,如果要想进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示贷币的形式。

此类还是在java.text 包中,所以直接导入此包即可。

 t.println("格式化之后的数字:" + nf.format(10000000)) ;  

 

import java.text.* ;  
public class NumberFormatDemo01{  
    public static void main(String args[]){  
        NumberFormat nf = null ;        // 声明一个NumberFormat对象  
        nf = NumberFormat.getInstance() ;   // 得到默认的数字格式化显示  
        System.out.println("格式化之后的数字:" + nf.format(10000000)) ;  
        System.out.println("格式化之后的数字:" + nf.format(1000.345)) ;  
    }  
};  

 

是NumberFormat 类的子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat 更加方便,因为可以直接指定按用户自定义方式进行格式化操作,与之前讲的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。

 

import java.text.* ;  
class FormatDemo{  
    public void format1(String pattern,double value){   // 此方法专门用于完成数字的格式化显示  
        DecimalFormat df = null ;           // 声明一个DecimalFormat类的对象  
        df = new DecimalFormat(pattern) ;   // 实例化对象,传入模板  
        String str = df.format(value) ;     // 格式化数字  
        System.out.println("使用" + pattern  
            + "格式化数字" + value + ":" + str) ;  
    }  
};  
public class NumberFormatDemo02{  
    public static void main(String args[]){  
        FormatDemo demo = new FormatDemo() ;    // 格式化对象的类  
        demo.format1("###,###.###",111222.34567) ;  
        demo.format1("000,000.000",11222.34567) ;  
        demo.format1("###,###.###¥",111222.34567) ;  
        demo.format1("000,000.000¥",11222.34567) ;  
        demo.format1("##.###%",0.345678) ;  
        demo.format1("00.###%",0.0345678) ;  
        demo.format1("###.###\u2030",0.345678) ;  
    }  
};  

 

java.lang.Object
  java.text.Format
      java.text.NumberFormat
          java.text.DecimalFormat
 

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。

 

分享到:
评论

相关推荐

    Java NumberFormat 类的详解及实例

    Java NumberFormat 类的详解及实例 Java NumberFormat 类是 ...Java NumberFormat 类和 DecimalFormat 类都是非常有用的工具类,它们可以帮助我们快速地完成数字的格式化操作,並且可以按照本地风格习惯进行数字显示。

    实现Java的数字格式化工具类

    DecimalFormat类是NumberFormat类的一个子类,用于格式化十进制数字,可以将数字格式化为整数、浮点数、百分比数等,并且可以为要输出的数字加上单位或控制精度;使用时在实例化DecimalFormat对象时传递数字格式或...

    java类Formatter解析.pdf

    除了Formatter类,文档还提到了java.text包中的多个类,它们都是用于处理不同类型的数据格式化的工具类,包括DateFormat,DecimalFormat,NumberFormat等。其中,DateFormat和SimpleDateFormat类用于日期和时间的...

    DecimalFormat数字格式化用法详解

    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 包含一个模式和一组符号,符号含义如下: * 下列字符用在非本地化的模式中。已本地化的模式使用从此 formatter 的 ...

    DecimalFormat多种用法详解

    可以使用 `NumberFormat.getInstance()` 方法返回 NumberFormat 的一个实例,实际上是 NumberFormat 的一个子类,例如 DecimalFormat。然后使用 `format()` 方法来格式化数字。 例如: ```java NumberFormat nf = ...

    Java字符串 日期 数字格式化输出-.doc

    Java 提供了多种方式来实现格式化输出,包括使用 NumberFormat、DecimalFormat 和 SimpleDateFormat 等类。 数字格式化输出 Java 中的数字格式化输出可以使用 NumberFormat 类来实现。NumberFormat 类提供了四种...

    数字格式化工具类

    在Java中,一个典型的例子就是`java.text.NumberFormat`类及其子类,如`DecimalFormat`。 `NumberFormat`是Java的一个抽象类,它为数字(如整数、浮点数)提供通用的格式化服务。它提供了国际化的支持,可以根据...

    数字格式化类与大数处理利用案例轻松学习Java语言PPT学习教案.pptx

    本篇内容主要讲解了Java中的`NumberFormat`类和`DecimalFormat`类用于数字格式化,以及`BigInteger`和`BigDecimal`类用于大数处理。 `NumberFormat`类是Java `java.text`包中的一个抽象类,它提供了对数字进行格式...

    java DecimalFormat常用方法详解

    Java DecimalFormat是Java中用于格式化十进制数字的一种常用方法,它继承自NumberFormat类,提供了多种格式化方式,满足不同的需求。在本文中,我们将详细介绍Java DecimalFormat的常用方法,并通过实例代码展示其...

    JavaPD-Ch06mao 常见类集合类及泛型类应用1

    数字格式化方面,Java提供了NumberFormat接口和其子类DecimalFormat,用于格式化数字输出,比如货币、百分比等。通过指定模式,我们可以控制数字的小数位数、千位分隔符等。 泛型类在Java中是类型安全的一种机制,...

    java中DecimalFormat四舍五入用法详解

    DecimalFormat 是 Java 中 NumberFormat 的一个具体子类,用于格式化十进制数字。它可以支持不同类型的数,包括整数、定点数、科学记数法表示的数、百分数和金额等这些内容的本地化。下面我们将详细介绍 ...

    java(小数点,百分号处理)

    本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat`类来处理小数点、百分比等格式的数值。 #### 一、`java.text.DecimalFormat`类 `DecimalFormat`是`NumberFormat`的一个子类,...

    Java字符串_日期_数字格式化输出

    1. **NumberFormat 类**:该类用于对数字进行格式化,如添加千位分隔符、设置小数点等。 - **示例代码**: ```java NumberFormat nf = NumberFormat.getCurrencyInstance(); System.out.println(nf.format(88888...

    java学习

    为了更精确地控制数字格式,可以使用`DecimalFormat`类,它是`NumberFormat`的一个具体子类。`DecimalFormat`允许我们自定义数字的格式模式。例如,`new DecimalFormat("####.000")`表示最多四个整数位,小数点后有...

    js数据格式转化

    `DecimalFormat`类是一个具体的`NumberFormat`类实例,用于格式化十进制数字。例如: 1. 若要将数字格式化为带有三位小数的格式,可以创建一个`DecimalFormat`对象,然后调用`format()`方法: ```java ...

    java字符串类型数字设置千分位分隔

    这个过程可以通过使用`DecimalFormat`类或`NumberFormat`类来实现。在给定的场景中,我们需要处理三种类型的数字:整数、带有小数点的数字以及负数,并且需要确保输入是有效的数字字符串。 首先,我们需要了解`...

    java使double保留两位小数的多方法共2页.pdf

    1. **使用`DecimalFormat`类**: `DecimalFormat`是`java.text`包中的一个类,专门用于数字的格式化。通过创建`DecimalFormat`对象并设置模式,我们可以轻松地将double值转换为具有特定小数位数的字符串。 ```...

    java 格式化输出数字的方法

    `DecimalFormat` 是 `NumberFormat` 类的子类,它提供了更具体的数字格式化功能。可以通过以下两种方式实例化 `DecimalFormat` 对象: - `DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();` - `...

    java数据格式化

    `NumberFormat`类用于数字的格式化和解析,而`DecimalFormat`则提供了更精细的控制。例如,以下代码展示了如何使用`DecimalFormat`格式化数字: ```java DecimalFormat df = new DecimalFormat("#,###.##"); double...

Global site tag (gtag.js) - Google Analytics