Java中的DecimalFormat用法解析
DecimalFormat用法
在项目中遇到需要维护层级关系的数据,在parentid里遇到这样一个需求,需要在一个数的前面加0,使这个字符串保持固定的长度,这样就遇到了这个类——DecimalFormat,继承自NumberFormat。 在这里记录一下它常用到的一些方法和使用方法:
double pi = 13.1415926; System.out.println(new DecimalFormat("整数部分是#").format(pi));//13 System.out.println(new DecimalFormat("0.0").format(pi));//13.1 System.out.println(new DecimalFormat("000.000").format(pi));//013.142 //以百分比方式计数,并取两位小数 System.out.println(new DecimalFormat("#.##%").format(pi));//1314.16% System.out.println(DecimalFormat.getCurrencyInstance().format(pi));//¥13.14 long c=299792458;//光速 //每三位以逗号进行分隔 System.out.println(new DecimalFormat(",###").format(c));//299,792,458
在使用的时候我还发现有#和0两种占位符,于是我又查了一下它们的区别
System.out.println(new java.text.DecimalFormat("#.###").format(3.0)); //3 System.out.println(new java.text.DecimalFormat("0.000").format(3.0) ); //3..000 DecimalFormat df1,df2; System.out.println("整数部分0/#的区别"); df1 = new DecimalFormat("#.00"); df2 = new DecimalFormat("0.00"); System.out.println(df1.format(0.1)); // .10 System.out.println(df2.format(0.1)); // 0.10 System.out.println("小数部分0/#的区别"); df1 = new DecimalFormat("0.00"); df2 = new DecimalFormat("0.##"); System.out.println(df1.format(0.1)); // 0.10 System.out.println(df2.format(0.1)); // 0.1 System.out.println(df1.format(0.006)); // 0.01 System.out.println(df2.format(0.006)); // 0.01 System.out.println("3、整数部分有多位"); df1 = new DecimalFormat("0.00"); df2 = new DecimalFormat("#.00"); System.out.println(df1.format(2)); // 2.00 System.out.println(df2.format(2)); // 2.00 System.out.println(df1.format(20)); // 20.00 System.out.println(df2.format(20)); // 20.00 System.out.println(df1.format(200)); // 200.00 System.out.println(df2.format(200)); // 200.00
结论:
1、小数部分 #代表最多有几位,0代表必须有且只能有几位 .00 表示最终结果得有两位小数,没有,我给你加上;多了,就四舍五入第三个小数 .## 标示最终结果最多有两位小数 一位或者没有都可以 多了同样四舍五入第三位
2、整数部分 0 和 # 当整数部分为0时 比如 0.1 # 此时认为整数部分不存在,所以不写 0 认为没有至少也得一位,写上0 这跟上面第一部分的表现是一致的:# 有就写,没有就不写 ;0 必须有 没有补0
3、整数部分有多位时: 2 20 200 由上面的结果可以看出 0和#对整数部分多位时的处理是一致的 就是有几位写多少位 这跟上面两部分的表现是不一致的 在有多位时,0和#都没有匹配位数,而是有多少写多少
到此这篇关于Java中的DecimalFormat用法解析的文章就介绍到这了,更多相关DecimalFormat用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于Controller层和Service层的类报错问题及解决方案
这篇文章主要介绍了关于Controller层和Service层的类报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-02-02高级数据结构及应用之使用bitmap进行字符串去重的方法实例
今天小编就为大家分享一篇关于高级数据结构及应用之使用bitmap进行字符串去重的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-02-02详解Spring cloud使用Ribbon进行Restful请求
这篇文章主要介绍了详解Spring cloud使用Ribbon进行Restful请求,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04Java中SimpleDateFormat日期格式转换详解及代码示例
这篇文章主要介绍了Java中SimpleDateFormat日期格式转换详解及代码示例,具有一定借鉴价值,需要的朋友可以参考下。2017-12-12
最新评论