DecimalFormat格式化十进制数字

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

DecimalFormat 包含一个模式 和一组符号

符号含义:


符号


位置


本地化?


含义


0


数字



阿拉伯数字


#


数字



阿拉伯数字,如果不存在则显示为空


.


数字



小数分隔符或货币小数分隔符


-


数字



减号


,


数字



分组分隔符


E


数字



分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。


;


子模式边界



分隔正数和负数子模式


%


前缀或后缀



乘以 100 并显示为百分数


/u2030


前缀或后缀



乘以 1000 并显示为千分数


¤(/u00A4)


前缀或后缀



货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。



前缀或后缀



用于在前缀或或后缀中为特殊字符加引号,例如 "‘#‘#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o‘‘clock"。

例子:

DecimalFormat df = new DecimalFormat("000000");

System.out.println(df.format(10));//000010

DecimalFormat df1 = new DecimalFormat("0.0");

System.out.println(df1.format(12.3453)+"--"+df1.format(12.355));//12.3--12.4

DecimalFormat df2 = new DecimalFormat("000.000");

System.out.println(df2.format(12.3453)+"--"+df2.format(12.355));//012.345--012.355

DecimalFormat df3 = new DecimalFormat("#.#");

System.out.println(df3.format(12.3453)+"--"+df3.format(12.355));//12.3--12.4

DecimalFormat df4 = new DecimalFormat("###.###");

System.out.println(df4.format(12.3453)+"--"+df4.format(12.355));//12.345--12.355

//中国式分割(四位一组)

DecimalFormat format = new DecimalFormat("###,####.000");

System.out.println(format.format(111111123456.1227222));// 1111,1112,3456.123

Locale.setDefault(Locale.US);   //美国式分割(三位一组)

DecimalFormat usFormat = new DecimalFormat("###,###.000");

System.out.println(usFormat.format(111111123456.1227222));   //111,111,123,456.123

DecimalFormat addPattenFormat = new DecimalFormat();

addPattenFormat.applyPattern("##,###.000");

System.out.println(addPattenFormat.format(111111123456.1227));   //111,111,123,456.123

DecimalFormat zhiFormat = new DecimalFormat();

zhiFormat.applyPattern("0.000E0000");

System.out.println(zhiFormat.format(10000));   //1.000E0004

System.out.println(zhiFormat.format(12345678.345));   //1.235E0007

DecimalFormat percentFormat = new DecimalFormat();

percentFormat.applyPattern("#0.000%");

System.out.println(percentFormat.format(0.3052222));//30.522%

时间: 2024-11-13 06:56:02

DecimalFormat格式化十进制数字的相关文章

DecimalFormat格式化输出带小数的数字类型

刚开始 double d = 333333333.333333333; System.out.println(d); 输出结果为3.333333333333333E8 网上找到了DecimalFormat对象 double d = 333333333.333333333; DecimalFormat decimalFormat = new DecimalFormat("#.#"); System.out.println(decimalFormat.format(d)); 结果为3333

java 每日习题(二) 用decimalFormat格式化输出

import java.text.DecimalFormat; import java.text.NumberFormat; /* * 输出: 02 A 04 A 06 A 08 A 10 A; 12 A 14 A 16 A 18 A 20 A; 22 A 24 A 26 A 28 A 30 A; 32 A 34 A 36 A 38 A 40 A; 42 A 44 A 46 A 48 A 50 A; */ public class outputPattern { public static vo

DecimalFormat格式化数字

DecimalFormat格式化数字 DecimalFormat类也是Format的一个子类,主要作用是格式化数字.当然,在格式化数字时要比直接使用NumberFormat更加 方便,因为可以直接指定按用户自定义的方式进行格式化操作,与SimpleDateFormat类似,如果要进行自定义格式化操作,则必须指定格式化操作 的模板,此模板如表11-13所示. 表11-13  DecimalFormat格式化模板 序号 标  记 位  置 描  述 1 0 数字 代表阿拉伯数字,每一个0表示一位阿拉

DecimalFormat 格式化金额

DecimalFormat 格式化金额,是使用现有API还是自己写util方法? public static void main(String[] args) throws Exception { DecimalFormat df = new DecimalFormat("#.00"); String re=df.format(23.8); System.out.println(re); String ss="23"; System.out.println(ensu

java基础之——DecimalFormat格式化数字

DecimalFormat可以用来格式化数字,例如用来设定保留多少位小数.设定数字分隔符等. 说方法之前,先介绍一下其常用的几个模式占位符: 0 一个数字# 一个数字,不包括 0. 小数的分隔符的占位符, 分组分隔符的占位符 这里用一个简单的例子来说明其使用方法: public static void main(String[] args) { DecimalFormat df1 = new DecimalFormat("#.#"); DecimalFormat df2 = new D

Java中几种常用的设置小数点后位数的方法

记录下几种常用的控制小数点后位数的方法,除了这几种还有很多方法也可以控制,但是用得不常见,下面是比较常见的几种方法 使用BigDecimal类对超长数字进行格式化控制 使用DecimalFormat格式化十进制数字 使用printf格式化输出 具体实现 package _12_26_test; import java.math.BigDecimal; import java.math.BigInteger; import java.text.DecimalFormat; /*控制小数点后位数的几

数值格式化 NumberFormat、 DecimalFormat、 RoundingMode

NumberFormat [简介] java.text.NumberFormat extends java.text.Format extends java.lang.Object 实现的接口:Serializable, Cloneable 直接子类:ChoiceFormat, DecimalFormat NumberFormat 是所有数值格式的抽象基类.此类提供格式化和解析数值的接口.NumberFormat 还提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么. Numbe

DecimalFormat用法

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字. DecimalFormat 包含一个模式 和一组符号 符号含义: 0 一个数字 # 一个数字,不包括 0 . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式. - 缺省负数前缀. % 乘以 100 和作为百分比显示 ? 乘以 1000 和作为千进制货币符显示:用货币符号代替:如果双写,用 国际货币符号代替.如果出现在一个模式中,用货币十进制分隔符代 替十进制分隔符. X 前缀或后缀中使用

DecimalFormat的简单了解

package com.sohu.tv.m.servlet; import java.text.DecimalFormat; /**  * just for simple Test  *  * @author liweihan  * @time 2016-12-13 10:47  */ public class Test2 {     public static void main(String[] args) {         /**          * DecimalFormat 是 N