Double a = 6.626774169430947E-4; 这样的小数
小数超过二十位用什么方法可以四舍五入保留两位小数呢,new DecimalFormat("#.00");这个方法没用,format以后小数直接就归零了,Math.round(a * 100 / 100)这个方法也不能用
double f = 3.1516;
BigDecimal b = new BigDecimal(f).setScale(2, BigDecimal.ROUND_HALF_UP);
double f1 = b.doubleValue();
String s1 = b.toString();
其中setScale()方法第二个参数设置的是四舍五入,还可以设置上取整等等,自己点进去查看。
如果是double和float类型,要用BigDecimal.valueOf(f)
方法,直接new BigDecimal(f)
会有精度问题
double f = 3.14111;
BigDecimal b = BigDecimal.valueOf(f).setScale(2, BigDecimal.ROUND_HALF_UP);
String s1 = b.toString();