首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

double取一定精密度格式化输出的所有方法

2012-09-01 
double取一定精度格式化输出的所有方法需要格式化输出double数值,精度为小数点后两位。似乎有很多种方法,但

double取一定精度格式化输出的所有方法
需要格式化输出double数值,精度为小数点后两位。似乎有很多种方法,但是我只想到了String.format(),惭愧,回家把其他方法的整理了一下。

double dd = 32.2553;//最简洁,利用类型转型转换System.out.println(Math.round(dd * 100)/100.0);//--output 32.26//不太好看的,利用大数类的方法BigDecimal bd = new BigDecimal(dd);System.out.println(bd.setScale(2, RoundingMode.HALF_UP));//--output 32.26//通用的格式化方法,万能类型转换和格式化System.out.println(String.format("%1$.2f",dd));//--output 32.26//最专业格式化,还可以利用父类NumberFormat设置LocaleDecimalFormat df1 = new DecimalFormat("#0.00");System.out.println(df1.format(dd));//--output 32.26//针对百分比,但是我需要按百分百里的数字排序而不是字典序DecimalFormat df2 = (DecimalFormat)DecimalFormat.getPercentInstance();df2.setMaximumFractionDigits(2);System.out.println(df2.format(0.45332));//--output 45.33%


我常常想JDK版本更新挺快,新类库总是更加漂亮和强大,是不是以后可以渐渐忘掉一些不好用的老类库呢~比如记住java.util.Formatter的各种格式化符就可以代替各种老的DateFormat还有NumberFormat什么的了...

热点排行