保留小数点的问题
public double getTest() {
double d = 10578945.314781564654767134324324;
BigDecimal bg = new BigDecimal(d);
d = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return d;
}
public static void main(String[] arges) {
TestMap testMap = new TestMap();
System.out.print(testMap.getTest());
}
结果是1.057894531E7 我想得到1057.89,1000W以内是没问题的,超过7位数就不行了呢
怎么做?
------解决方案--------------------首先,从数值来说是没有问题的;你是不是想问在页面中显示的时候的格式的问题,可以用fmt的标签
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber value="${aaa}" pattern="#00.00" />
-- aaa表示某个数字,结果会保留两位小数
或者
<fmt:formatNumber value="${aaa}" pattern="#,#00.00" />
-- 结果会保留两位小数,并且有分隔符,比如“22,345.68”
------解决方案--------------------Java code
NumberFormat format =NumberFormat.getInstance();
//是否分组
format.setGroupingUsed(false);
//允许返回小数部分的最大位数
format.setMaximumFractionDigits(2);
System.out.println(format.format(10578945.314781564654767134324324));