double取一定精度格式化输出的所有方法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > double取一定精度格式化输出的所有方法

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

 2012/3/23 23:51:12  JeffreyPeng  程序员俱乐部  我要评论(0)
  • 摘要:需要格式化输出double数值,精度为小数点后两位。似乎有很多种方法,但是我只想到了String.format(),惭愧,回家把其他方法的整理了一下。doubledd=32.2553;//最简洁,利用类型转型转换System.out.println(Math.round(dd*100)/100.0);//--output32.26//不太好看的,利用大数类的方法BigDecimalbd=newBigDecimal(dd);System.out.println(bd.setScale(2
  • 标签:方法 输出
需要格式化输出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设置Locale
	DecimalFormat 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什么的了...
发表评论
用户名: 匿名