【Java】DecimalFormat 格式化小结

DecimalFormat 中的pattern字符解释:

@-> 0指定位置不存在数字则显示为0 

ex. 123.123 -> pattern [ 0000.0000 ] -> 0123.1230

@-> #指定位置不存在则不显示

ex. 123.123 -> pattern [ ####.#### ] -> 123.123

@-> . 小数点通常用来指定保留几位小数

@-> %会将 结果数字x100 后加上 % 显示

ex. 0.0123 -> pattern [ #.00% ] -> 1.23%

double data = 2.123456;
double data2 = 0.001034;

// 取一位整数
System.out.println(new DecimalFormat("0").format(data));  //2
// 取一位整数和两位小数
System.out.println(new DecimalFormat("0.00").format(data));  //2.12
// 取两位整数和三位小数,整数不足部分以0填补
System.out.println(new DecimalFormat("00.000").format(data)); //02.123

System.out.println("---------------------------------");

// 取所有整数部分
System.out.println(new DecimalFormat("#").format(data2));  //0
// 取一位整数和两位小数,末尾为0的时候不显示
System.out.println(new DecimalFormat("#.##").format(data2));  //0
// 取两位整数和三位小数,末尾为0的时候不显示
System.out.println(new DecimalFormat("##.###").format(data2));  //0.001

System.out.println("---------------------------------");

// 以百分比方式计数,并取两位小数
System.out.println(new DecimalFormat("0.00%").format(data));  //212.35%
// 以百分比方式计数,并取两位小数
System.out.println(new DecimalFormat("#.##%").format(data));  //212.35%

// 如果data部分数位为0[会显示0]
System.out.println(new DecimalFormat("0.00%").format(data2));  //0.10%
// 如果data部分数位为0[不显示0]
System.out.println(new DecimalFormat("#.##%").format(data2));  //0.1%

System.out.println("---------------------------------");

// 复合使用:取三位整数,个位如果为零写0,并保留两位小数
System.out.println(new DecimalFormat("##0.00").format(99.00123)); //99.00
// 复合使用:取三位整数,十位和个位如果为零写0,并保留两位小数
System.out.println(new DecimalFormat("#00.00").format(9.001234));  //09.00

System.out.println("---------------------------------");

long c = 299792458;  //光速

//显示为科学计数法,并取五位小数
System.out.println(new DecimalFormat("#.#####E0").format(c));  //2.99792E8
// 显示为两位整数的科学计数法,并取四位小数
System.out.println(new DecimalFormat("00.####E0").format(c));  //29.9792E7

//每三位以逗号进行分隔
System.out.println(new DecimalFormat(",###").format(c));  //299,792,458

// 将格式嵌入文本
System.out.println(new DecimalFormat("光速大小为每秒,###米").format(c)); //光速大小为每秒299,792,458米

参考:https://blog.csdn.net/icecoola_/article/details/80930377 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaDecimalFormat类是一个用于格式化数字的类。它可以将数字格式化为指定的模式,例如货币格式、百分比格式等。DecimalFormat类可以通过设置模式字符串来控制数字的格式化方式。模式字符串包含特殊字符,例如“#”和“”,用于指定数字的位数和小数点位置。DecimalFormat类还提供了一些方法,例如format()方法,用于将数字格式化为字符串,以及parse()方法,用于将字符串解析为数字。 ### 回答2: DecimalFormatJava中的一个类,用于格式化数字。它提供了一种将数字格式化为特定模式的方式,可以定制数字的格式,例如小数点后的位数、千分位分隔符等等。 使用DecimalFormat类,首先需要实例化一个DecimalFormat对象,可以根据自己的需求传入特定的格式模式。一般情况下,格式模式是由数字、千分位分隔符和小数点符号组成的。 示例: DecimalFormat df = new DecimalFormat("#,###.00"); 在这个示例中,格式模式是"#,###.00",它指定了数字的格式为千分位分隔符和小数点后两位小数。 接下来,可以使用DecimalFormat对象的format方法将数字格式化为指定的格式。例如: String result = df.format(12345.678); 在这个例子中,变量result将会存储格式化后的结果"12,345.68"。 DecimalFormat还提供了其他的方法,比如可以设置货币符号、设置正负号等等。通过这些方法,我们可以更加灵活地控制数字的格式。 总的来说,DecimalFormat类是Java中用于格式化数字的类。通过指定特定的格式模式,我们可以格式化数字并进行灵活的控制,得到我们想要的输出结果。 ### 回答3: DecimalFormatJava 中的一个类,用于格式化数字。它可用于将数字按照指定的格式进行格式化,如添加千位分隔符、设置小数位数等。 使用 DecimalFormat,我们首先需要创建一个 DecimalFormat 对象,并指定格式模式。格式模式是一个字符串,由特定的符号和占位符组成,用于定义数字的格式。 例如,要将一个数字格式化为带有小数点后两位的字符串,可以这样做: ```java DecimalFormat df = new DecimalFormat("0.00"); double number = 1234.5678; String formattedNumber = df.format(number); System.out.println(formattedNumber); ``` 这样就会将数字 1234.5678 格式化为字符串 "1234.57"。 除了指定小数位数,DecimalFormat 还支持其他常用的格式化选项,如千位分隔符和百分号。 例如,要将一个大数添加千位分隔符并格式化为百分数,可以这样做: ```java DecimalFormat df = new DecimalFormat("#,###.00%"); double number = 0.1234; String formattedNumber = df.format(number); System.out.println(formattedNumber); ``` 这样就会将数字 0.1234 格式化为字符串 "12.34%"。 除了使用预定义的格式模式,我们还可以通过自定义模式来实现更复杂的格式化需求。在格式模式中,可以使用特殊字符来表示数字的各个部分,如 # 表示可选的数字位,0 表示必需的数字位,同时还可以使用分组符号、货币符号等。 综上所述,DecimalFormatJava 中用于数字格式化的一个类,它可以根据指定的格式将数字转换为字符串,并支持设置各种格式选项,如小数位数、千位分隔符和百分号等。通过使用 DecimalFormat,我们可以轻松地进行数字格式化的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值