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 类和 DecimalFormat 类都是非常有用的工具类,它们可以帮助我们快速地完成数字的格式化操作,並且可以按照本地风格习惯进行数字显示。
DecimalFormat类是NumberFormat类的一个子类,用于格式化十进制数字,可以将数字格式化为整数、浮点数、百分比数等,并且可以为要输出的数字加上单位或控制精度;使用时在实例化DecimalFormat对象时传递数字格式或...
除了Formatter类,文档还提到了java.text包中的多个类,它们都是用于处理不同类型的数据格式化的工具类,包括DateFormat,DecimalFormat,NumberFormat等。其中,DateFormat和SimpleDateFormat类用于日期和时间的...
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 包含一个模式和一组符号,符号含义如下: * 下列字符用在非本地化的模式中。已本地化的模式使用从此 formatter 的 ...
可以使用 `NumberFormat.getInstance()` 方法返回 NumberFormat 的一个实例,实际上是 NumberFormat 的一个子类,例如 DecimalFormat。然后使用 `format()` 方法来格式化数字。 例如: ```java NumberFormat nf = ...
Java 提供了多种方式来实现格式化输出,包括使用 NumberFormat、DecimalFormat 和 SimpleDateFormat 等类。 数字格式化输出 Java 中的数字格式化输出可以使用 NumberFormat 类来实现。NumberFormat 类提供了四种...
在Java中,一个典型的例子就是`java.text.NumberFormat`类及其子类,如`DecimalFormat`。 `NumberFormat`是Java的一个抽象类,它为数字(如整数、浮点数)提供通用的格式化服务。它提供了国际化的支持,可以根据...
本篇内容主要讲解了Java中的`NumberFormat`类和`DecimalFormat`类用于数字格式化,以及`BigInteger`和`BigDecimal`类用于大数处理。 `NumberFormat`类是Java `java.text`包中的一个抽象类,它提供了对数字进行格式...
Java DecimalFormat是Java中用于格式化十进制数字的一种常用方法,它继承自NumberFormat类,提供了多种格式化方式,满足不同的需求。在本文中,我们将详细介绍Java DecimalFormat的常用方法,并通过实例代码展示其...
数字格式化方面,Java提供了NumberFormat接口和其子类DecimalFormat,用于格式化数字输出,比如货币、百分比等。通过指定模式,我们可以控制数字的小数位数、千位分隔符等。 泛型类在Java中是类型安全的一种机制,...
DecimalFormat 是 Java 中 NumberFormat 的一个具体子类,用于格式化十进制数字。它可以支持不同类型的数,包括整数、定点数、科学记数法表示的数、百分数和金额等这些内容的本地化。下面我们将详细介绍 ...
本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat`类来处理小数点、百分比等格式的数值。 #### 一、`java.text.DecimalFormat`类 `DecimalFormat`是`NumberFormat`的一个子类,...
1. **NumberFormat 类**:该类用于对数字进行格式化,如添加千位分隔符、设置小数点等。 - **示例代码**: ```java NumberFormat nf = NumberFormat.getCurrencyInstance(); System.out.println(nf.format(88888...
为了更精确地控制数字格式,可以使用`DecimalFormat`类,它是`NumberFormat`的一个具体子类。`DecimalFormat`允许我们自定义数字的格式模式。例如,`new DecimalFormat("####.000")`表示最多四个整数位,小数点后有...
`DecimalFormat`类是一个具体的`NumberFormat`类实例,用于格式化十进制数字。例如: 1. 若要将数字格式化为带有三位小数的格式,可以创建一个`DecimalFormat`对象,然后调用`format()`方法: ```java ...
这个过程可以通过使用`DecimalFormat`类或`NumberFormat`类来实现。在给定的场景中,我们需要处理三种类型的数字:整数、带有小数点的数字以及负数,并且需要确保输入是有效的数字字符串。 首先,我们需要了解`...
1. **使用`DecimalFormat`类**: `DecimalFormat`是`java.text`包中的一个类,专门用于数字的格式化。通过创建`DecimalFormat`对象并设置模式,我们可以轻松地将double值转换为具有特定小数位数的字符串。 ```...
`DecimalFormat` 是 `NumberFormat` 类的子类,它提供了更具体的数字格式化功能。可以通过以下两种方式实例化 `DecimalFormat` 对象: - `DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();` - `...
`NumberFormat`类用于数字的格式化和解析,而`DecimalFormat`则提供了更精细的控制。例如,以下代码展示了如何使用`DecimalFormat`格式化数字: ```java DecimalFormat df = new DecimalFormat("#,###.##"); double...