java中格式化输出小数的问题归纳

来源:互联网 发布:mac怎么换u盘格式 编辑:程序博客网 时间:2024/06/05 12:44

在开发中经常遇到很多要求格式输出小数的问题,现在同一归纳一下。


1、保留两位。

double tmp = 6070.113;DecimalFormat df = new DecimalFormat("###.00");System.out.println(df.format(tmp));
这里仅仅是保留了小数点后2位,但是你可能会遇到

DecimalFormat f = new DecimalFormat("#,##0.00");double d = 1.125;System.out.println(f.format(d)); // 输出 1.12d = 1.135;System.out.println(f.format(d)); // 输出 1.14

2、如果要四舍五入

DecimalFormat f = new DecimalFormat("#,##0.00");
f.setRoundingMode(RoundingMode.HALF_UP);
double d = 1.125;System.out.println(f.format(d)); // 输出 1.13d = 1.135;System.out.println(f.format(d)); // 输出 1.14


3、对于""里面的占位符,也就是输出格式。

0 代表无论数字是多少都会被显示出来。 new DecimalFormat("#,###.00");  显示0.133一定会显示出  .133它会把前面的0省略掉,所以一定要写成#,##0,00

# 代表在不影响数值的情况下,0不会被显示出来。  所以一般都是#开头把一串数字前面的无意义的0去掉。

.  代表小数点

; 代表正数负数的显示风格的分割符号    new DecimalFormat("#,##0.00;(#,##0.00)");

#,### == ##,### == ###,### == #,###,###  这几个显示模式是恒等的。所以一般都是写出一个最小的模式即可。






0 0
原创粉丝点击