我有一个值  50257001.3
转换后 Double.parseDouble("50257001.3") 
成为 5.02570013E7有什么办法可以解决这个问题?????
(在线等大家答案)

解决方案 »

  1.   

    没有办法...
    不要用Double类型,用BigDecimal
      

  2.   

    public static void main(String[] args) {
    String dd="50257001.3";
    double dou = Double.valueOf(dd);
    BigDecimal cc = BigDecimal.valueOf(dou);
    System.out.println(cc);
    }
           double类型超过一定的值就会用这种方式进行表示,可以用BigDecimal来中转一下
      

  3.   

        String a= "50257001.3" ;
        Double b=new Double(a);
       
        DecimalFormat f=new DecimalFormat();
        
        System.out.println(f.format(a));
    这样的话是50,257,001.3,不知道是不是你要的!如果没有','也不知道怎么写了
      

  4.   

    /**
     * 格式化数字
     * @param {Object} number 浮点数
     * @param {Object} pattern 小数位后保留几位
     */
    function formatNumber(number, pattern){
        if (number == null || number == undefined || number == '') {
            number = "0";
        }
        return parseFloat(number).toFixed(pattern);
    }
      

  5.   

    不好意思写错了,最后应该是System.out.println(f.format(b));
      

  6.   

    1、只怕你连自己的需求还没搞明白哦。
    2、double值本来就是以科学计数法的形式显示的。
    3、如果你下一步要用这个double值参与数字计算的话,50257001.3和5.02570013E7有区别吗?
    4、你所说的这个值50257001.3,也没说是什么类型的,这是java不是javascript等弱类型语言。如果是字符串的话,直接显示就好了;如果是double型的,JFC中有现成的接口可以格式化输出你的任何primitive类型。NumberFormat接口可以做数字格式化的工作,DecimalFormat是它的一个实现。