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位数就不行了呢
怎么做?

解决方案 »

  1.   

    首先,从数值来说是没有问题的;你是不是想问在页面中显示的时候的格式的问题,可以用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” 
      

  2.   

            NumberFormat format =NumberFormat.getInstance();
    //是否分组
    format.setGroupingUsed(false);
    //允许返回小数部分的最大位数
    format.setMaximumFractionDigits(2);
    System.out.println(format.format(10578945.314781564654767134324324));
      

  3.   

      是用的double,还有其他方法吗?