本文参考自:http://hi.baidu.com/thelongesturl/item/651710109ba7268f88a956bb
java保留两位小数问题,以下解决方案都是四舍五入的:
方式一:
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
方式二:
DecimalFormat df = new java.text.DecimalFormat("#0.00");
df.format(你要格式化的数字);
例:
DecimalFormat df = new DecimalFormat("#0.00");
double d1 = 3.23456
double d2 = 0.0;
double d3 = 2.0;
df.format(d1);
df.format(d2);
df.format(d3);
输出结果分别为:
3.23
0.00
2.00
方式三:
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits)
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍四舍五入的,例:
double x=23.5455;
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
ddf1.setMaximumFractionDigits(2);
String s= ddf1.format(x) ;
System.out.print(s);