保留小数点的问题
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”
[解决办法]
NumberFormat format =NumberFormat.getInstance(); //是否分组 format.setGroupingUsed(false); //允许返回小数部分的最大位数 format.setMaximumFractionDigits(2); System.out.println(format.format(10578945.314781564654767134324324));