java中的小数 怎么在0.0001这样的时候就出现E-4计数了啊,我想要保留小数的原始格式,不要这样的科学计数法,不知道有没有什么方法?
不想对每个数字截取E-后面的n值补零在前面那样的处理方法,有没有什么强制的不让小数出现科学计数的?
谢谢啦

解决方案 »

  1.   

    private static DecimalFormat df = new DecimalFormat("#.00");
    float temp = 3.1111111;
    Float.parseFloat(df.format(temp));
      

  2.   

    这个方法是把3.111111这样的数保留2位小数,但是怎样做到一个double变量(有可能它在内存中已经出现了E-n)输出为小数格式,我试了一下,对变量这样转 都成0.00了噢,求教
      

  3.   

    比如说现在有个变量double num;
    通过System.out.print(num);
    输出为4.0E-4
    我应该怎样对num处理才能显示为0.0004呢.
    我试了,如果声明double num = 0.0004的话;
    直接打印输出为4.0E-4,用Double.parseDouble(df.format((num));可以输出为0.0004
    但对于变量实现不了这样的效果
      

  4.   

    精确的结果计算和显示要用BigDecimal对象!
      

  5.   

    将要显示或处理的数据最好转成String进行BigDecimal封装(经验所得,推荐),new BigDecimal(value.toString),BigDecimal类提供了一般的加减乘除算法,对于精确计算和显示是足够用了
      

  6.   

    试了一下,的确可以把带E-n的小数 精确输出,但如果要保留几位小数,通过设置setScale(int)怎么不好用啊,高手给个转换一下,比如把3.060004E-4,这样的小数转换为保留5位小数0.00031这样的数,改怎么取舍啊!
      

  7.   

    问题已解决;
    double d = xxxx; 
    java.text.DecimalFormat df=new java.text.DecimalFormat("##.######");
    String dd =df.format(d);
    可以实现保留6位小数 
    BigDecimal bd = new BigDecimal(String.valueOf(d));
    可以用来精确计算 谢谢2位!
    有一点不清楚,就是如何用BigDecimal来实现按标度取舍!
      

  8.   

    BigDecimal有多个构造函数,你自己看看,后面的参数可以决定需要保留几位和以几进位等