DecimalFormat的正确打开姿势

前言:DecimalFormat的产生背景

在上一篇《BigDecimal简单介绍》中,我们学会了如何利用BigDecimal对象对含有小数点的数进行精确的计算。但是,程序在输出商品价格时,是直接输出数字,并没有加上人民币符号“¥”。那么在Java中,有没有一种API专门用来格式化数字呢?答案是肯定的,它就是DecimalFormat。
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化

一. 如何使用DecimalFormat

本文将从一个白日梦场景出发——The Dubai Mall(迪拜购物中心)购物,通过这次购物(商品展示、多语言价格显示、消费统计)学习如何使用DecimalFormat。

1.1 DecimalFormat的初始化

DecimalFormat有三个构造函数,分别是DecimalFormat()、DecimalFormat(String pattern)、DecimalFormat (String pattern, DecimalFormatSymbols symbols)。第一个是默认的格式;第二个会根据程序设置的格式进行格式化;第三个在第二个基础上增加了符号集的概念,符合集是根据Locale对象创建的。其中最常使用的是DecimalFormat(String pattern)。
我们建立一个DubaiShopping类,在该类中定义三个常量并在main方法中格式化后,将它们打印出来。
在这里插入图片描述
tips:想要设置和我一样背景的转《IDEA 文件开头设置作者和日期、背景图片》
lamborghiniStockDF格式化LAMBORGHINI_STOCKR输出了“9,999”,这是默认的格式化形式,会每三个数字加一个英文逗号加以分隔。在goldStockDF初始化的时候,我们指定了格式化的形式"000000000.00kg",这里面"0"的含义是指该数字位上如果有阿拉伯数字就显示该阿拉伯数字,如果没有就显示0。在diamondStockDF初始化的时候,我们指定了小数位的十、百、千分位为"0",即如果存在数字就显示该数字,不存在就显示0;指定万分位为"#","#"的意思是指如果存在数字就显示该数字,不存在就什么都不显示。在这里,我要特别提醒一下大家,源码关于这两个符号的注释是错误的,其实是颠倒了。
在这里插入图片描述
源码注释写反了,自然在官网上也是错误的。所以,在JDK中文网站,和大量博文中都有着这样的错误。

1.2 DecimalFormat的常用方法

1.3 DecimalFormat的进阶方法

二. 总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值