print
public void print(double d)打印双精度浮点数。按照平台的默认字符编码将 String.valueOf(double) 生成的字符串转换为字节,并完全以 write(int) 方法的方式
写入这些字节。 参数:
d - 要打印的 double
另请参见:
Double.toString(double)
toString
public static String toString(double d)返回 double 参数的字符串表示形式。下面提到的所有字符都是 ASCII 字符。 
如果参数为 NaN,那么结果为字符串 "NaN"。 
否则,结果是表示参数符号和数值(绝对值)的字符串。如果符号为负,那么结果的第一个字符是 '-' ('\u002D');如果符号为正,那么结果中不显示符号字符。对于数值 m: 
如果 m 为无穷大,则用字符 "Infinity" 表示;因此,正无穷大生成结果 "Infinity",负无穷大生成结果 "-Infinity"。 
如果 m 为 0,则用字符 "0.0" 表示;因此,负 0 生成结果 "-0.0",正 0 生成结果 "0.0"。 
如果 m 大于或者等于 10-3,但小于 107,则采用不带前导 0 的十进制形式,用 m 的整数部分表示,后跟 '.' ('\u002E'),再后面是表示 m 小数部分的一个或多个十进制数字。 
如果 m 小于 10-3 或大于等于 107,则使用所谓的“计算机科学记数法”表示。设 n 为满足 10n <= m < 10n+1 的唯一整数;然后设 a 为 m 与 10n 的精确算术商,从而 1 <= a < 10。那么,数值便表示为 a 的整数部分,其形式为:一个十进制数字,后跟 '.' ('\u002E'),接着是表示 a 小数部分的十进制数字,再后面是字母 'E' ('\u0045'),最后是用十进制整数形式表示的 n,这与方法 Integer.toString(int) 生成的结果一样。 
必须为 m 或 a 的小数部分显示多少位呢?至少必须有一位数来表示小数部分,除此之外,需要更多(但只能和需要的一样多)位数来唯一地区分参数值和 double 类型的邻近值。这就是说,假设 x 是用十进制表示法表示的精确算术值,是通过对有限非 0 参数 d 调用此方法生成的。那么 d 一定是最接近 x 的 double 值;如果两个 double 值都同等地接近 x,那么 d 必须是其中之一,并且 d 的有效数字的最低有效位必须是 0。 
要创建浮点值的本地化字符串表示形式,请使用 NumberFormat 的子类。 
参数:
d - 要转换的 double 值。 
返回:
参数的字符串表示形式。

解决方案 »

  1.   

    这个~~~用科学计数法表示简洁一些,加了1后如果还用科学技术法反而复杂了
    你要是想要显示0开头的可以这样
    BigDecimal n = new BigDecimal(0.00204);
    System.out.println(n);
      

  2.   

    你想要原样显示也可以这样:
    计算的时候不会产生任何影响,只不过是显示方式问题
    System.out.print(String.valueOf(a));
    或者
    System.out.print(""+a);
      

  3.   


        public static String doubleToString(Object value)
        {
            DecimalFormat df = new DecimalFormat("#,###");
            String strValue = df.format(value);
            return strValue;
        }
    遇到科学计数法的时候,一般把他转成字符串,如果你后边要用数据类型,再找他转回来
      

  4.   

    国际IEEE标准,E-4相当于10的-4次幂
      

  5.   

    用不用科学计数法不是看你的小数点前面有没有小数点,编译器会根据你的数选用一种最佳的输出策略
    比如下面,虽然小数点前面有整数,但是由于数太长了,还是会采用科学计数法:
    package dsg;public class test { public static void main(String[] args) {
    double s = 11111111111.000023;
    double a = 0.000023;
    System.out.println("s = " + s);
    System.out.println("a = " + a);
    }
    }