JavaTM Platform
Standard Ed. 6

java.lang
클래스 Double

java.lang.Object 
  상위를 확장 java.lang.Number 
      상위를 확장 java.lang.Double
모든 구현된 인터페이스:
Serializable , Comparable <Double >


public final class Double
extends Number
implements Comparable <Double >

Double 클래스는, 원시형 double 의 값을 객체에 랩 합니다. Double 형의 객체에는, 형태가 double 의 단일 필드가 포함됩니다.  

한층 더 이 클래스는,doubleString 에,Stringdouble 로 변환하는 각종 메소드나,double 의 처리시에 도움이 되는 정수 및 메소드도 제공합니다.

도입된 버젼:
JDK1. 0
관련 항목:
직렬화 된 형식

필드의 개요
static int MAX_EXPONENT
          유한의 double 변수가 가질 가능성이 있는 최대 지수입니다.
static double MAX_VALUE
          double 형의 정의 최대 유한치 (2-2-52) ·21023 입니다.
static int MIN_EXPONENT
          표준화 된 double 변수가 가질 가능성이 있는 최소 지수입니다.
static double MIN_NORMAL
          double 형의 정의 일반적으로의 값 2-1022 입니다.
static double MIN_VALUE
          double 형의 정의 최소 유한치 2-1074 입니다.
static double NaN
          double 형의 비수 (NaN) 치를 보관 유지하는 정수입니다.
static double NEGATIVE_INFINITY
          double 형의 부의 무한대치를 보관 유지하는 정수입니다.
static double POSITIVE_INFINITY
          double 형의 정의 무한대치를 보관 유지하는 정수입니다.
static int SIZE
          double 치를 나타내는데 사용되는 비트수
static Class <Double > TYPE
          double 의 원시형을 나타내는 Class 인스턴스입니다.
 
생성자 의 개요
Double (double value)
          프리미티브(primitive) double 인수를 나타낸다, 새롭게 할당할 수 있는 Double 객체를 구축합니다.
Double (String  s)
          캐릭터 라인으로 나타내지는 double 형의 부동 소수점을 나타내는, 새롭게 할당할 수 있는 Double 객체를 구축합니다.
 
메소드의 개요
 byte byteValue ()
          이 Double 의 값을 (byte 에 캐스트 하는 것으로써) byte 로서 돌려줍니다.
static int compare (double d1, double d2)
          지정된 2 개의 double 치를 비교합니다.
 int compareTo (Double  anotherDouble)
          2 개의 Double 객체를 수치적으로 비교합니다.
static long doubleToLongBits (double value)
          IEEE 754 부동 소수점의 「더블 포맷 (double format)」비트 레이아웃에 따라, 지정된 부동 소수점의 값을 표현해 돌려줍니다.
static long doubleToRawLongBits (double value)
          IEEE 754 부동 소수점의 「더블 포맷 (double format)」비트 레이아웃에 따라, 비수 (NaN) 치를 보관 유지하는, 지정된 부동 소수점치의 표현을 돌려줍니다.
 double doubleValue ()
          이 Double 객체의 double 치를 돌려줍니다.
 boolean equals (Object  obj)
          객체와 지정된 객체를 비교합니다.
 float floatValue ()
          이 Double 객체의 float 치를 돌려줍니다.
 int hashCode ()
          이 Double 객체의 해시 코드를 돌려줍니다.
 int intValue ()
          이 Double 의 값을 (int 형에 캐스트 하는 것으로써) int 로서 돌려줍니다.
 boolean isInfinite ()
          이 Double 치의 절대치가 무한량인 경우에는 true 를, 그렇지 않은 경우에는 false 를 돌려줍니다.
static boolean isInfinite (double v)
          지정된 수치의 절대치가 무한량인 경우에는 true 를, 그렇지 않은 경우에는 false 를 돌려줍니다.
 boolean isNaN ()
          이 Double 치가 비수 (NaN)인 경우에는 true 를, 그렇지 않은 경우는 false 를 돌려줍니다.
static boolean isNaN (double v)
          지정된 수치가 비수 (NaN)인 경우에는 true 를, 그렇지 않은 경우는 false 를 돌려줍니다.
static double longBitsToDouble (long bits)
          지정된 비트 표현과 대응하는 double 치를 돌려줍니다.
 long longValue ()
          이 Double 의 값을 (long 형에 캐스트 하는 것으로써) long 로서 돌려줍니다.
static double parseDouble (String  s)
          Double 클래스의 valueOf 메소드를 실행했을 경우와 같게, 지정된 String 가 나타내는 값에 초기화된 새로운 double 치를 돌려줍니다.
 short shortValue ()
          이 Double 의 값을 (short 에 캐스트 하는 것으로써) short 로서 돌려줍니다.
static String toHexString (double d)
          double 인수의 16 진수 캐릭터 라인 표현을 돌려줍니다.
 String toString ()
          이 Double 객체의 캐릭터 라인 표현을 돌려줍니다.
static String toString (double d)
          double 인수의 캐릭터 라인 표현을 돌려줍니다.
static Double valueOf (double d)
          지정한 double 치를 나타내는 Double 인스턴스를 돌려줍니다.
static Double valueOf (String  s)
          캐릭터 라인 인수 s 로 나타내지는 double 치를 보관 유지하는 Double 객체를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

필드의 상세

POSITIVE_INFINITY

public static final double POSITIVE_INFINITY
double 형의 정의 무한대치를 보관 유지하는 정수입니다. Double.longBitsToDouble(0x7ff0000000000000L) 에 의해 반환되는 값과 같습니다.

관련 항목:
정수 필드치

NEGATIVE_INFINITY

public static final double NEGATIVE_INFINITY
double 형의 부의 무한대치를 보관 유지하는 정수입니다. Double.longBitsToDouble(0xfff0000000000000L) 에 의해 반환되는 값과 같습니다.

관련 항목:
정수 필드치

NaN

public static final double NaN
double 형의 비수 (NaN) 치를 보관 유지하는 정수입니다. Double.longBitsToDouble(0x7ff8000000000000L) 에 의해 반환되는 값과 같습니다.

관련 항목:
정수 필드치

MAX_VALUE

public static final double MAX_VALUE
double 형의 정의 최대 유한치 (2-2-52) ·21023 입니다. 16 진수 부동 소수점 리터럴 0x1.fffffffffffffP+1023 로 동등하고,Double.longBitsToDouble(0x7fefffffffffffffL) 와도 동등합니다.

관련 항목:
정수 필드치

MIN_NORMAL

public static final double MIN_NORMAL
double 형의 정의 일반적으로의 값 2-1022 입니다. 16 진수 부동 소수점 리터럴 0x0. 0000000000001P-1022 로 동등하고, Double.longBitsToDouble(0x1L)와도 동등합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

MIN_VALUE

public static final double MIN_VALUE
double 형의 정의 최소 유한치 2-1074 입니다. 16 진수 부동 소수점 리터럴 0x0. 0000000000001P-1022 로 동등하고,Double.longBitsToDouble(0x1L) 와도 동등합니다.

관련 항목:
정수 필드치

MAX_EXPONENT

public static final int MAX_EXPONENT
유한의 double 변수가 가질 가능성이 있는 최대 지수입니다. Math.getExponent(Double.MAX_VALUE) 가 돌려주는 값과 같습니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

MIN_EXPONENT

public static final int MIN_EXPONENT
표준화 된 double 변수가 가질 가능성이 있는 최소 지수입니다. Math.getExponent(Double.MIN_NORMAL) 가 돌려주는 값과 같습니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

SIZE

public static final int SIZE
double 치를 나타내는데 사용되는 비트수

도입된 버젼:
1.5
관련 항목:
정수 필드치

TYPE

public static final Class <Double > TYPE
double 의 원시형을 나타내는 Class 인스턴스입니다.

도입된 버젼:
JDK1. 1
생성자 의 상세

Double

public Double(double value)
프리미티브(primitive) double 인수를 나타낸다, 새롭게 할당할 수 있는 Double 객체를 구축합니다.

파라미터:
value - Double 에 의해 나타내지는 값

Double

public Double(String  s)
       throws NumberFormatException 
캐릭터 라인으로 나타내지는 double 형의 부동 소수점을 나타내는, 새롭게 할당할 수 있는 Double 객체를 구축합니다. 캐릭터 라인은,valueOf 메소드와 같게 double 치에 변환됩니다.

파라미터:
s - Double 로 변환하는 캐릭터 라인
예외:
NumberFormatException - 캐릭터 라인이 구문 분석 가능한 수치를 포함하지 않는 경우
관련 항목:
valueOf(java.lang.String)
메소드의 상세

toString

public static String  toString(double d)
double 인수의 캐릭터 라인 표현을 돌려줍니다. 이하의 문자는 모두 ASCII 문자입니다. m 또는 a 의 소수부로서 출력하는 자리수를 검토해 봅시다. 소수부를 나타내는 자리수는 1 자리수 이상이 필요합니다. double 형의 인접하는 값으로부터 인수를 일의에 식별하는데 최저한 필요한 자리수로 해 주세요. 예를 들어, 제로가 아닌 유한의 인수를 지정해 이 메소드로 작성한 10 진수 표기를 x 로 합니다. 이 경우,dxdouble 형의 최근 닮고 값이 아니면 안됩니다. 즉, 2 개의 double 치가 균등하게 x 에 근사 하고 있는 경우이면,d 는 2 개의 값의 어느 쪽인지 나오지 않으면 안되어, 유효한 최하정도 비트는 0 이 아니면 안됩니다.  

부동 소수점치의 로컬라이즈 된 캐릭터 라인 표현을 작성하는 경우,NumberFormat 의 서브 클래스를 사용합니다.

파라미터:
d - 변환 대상의 double
반환값:
이 인수의 캐릭터 라인 표현

toHexString

public static String  toHexString(double d)
double 인수의 16 진수 캐릭터 라인 표현을 돌려줍니다. 이하의 문자는 모두 ASCII 문자입니다.

부동 소수점치16 진수 캐릭터 라인
1.0 0x1. 0p0
-1. 0 -0x1. 0p0
2.0 0x1. 0p1
3.0 0x1. 8p1
0.5 0x1. 0p-1
0.25 0x1. 0p-2
Double.MAX_VALUE Double.MAX_VALUE
0x1.fffffep127 Minimum Normal Value 0x1. 0p-1022
Maximum Subnormal Value 0x0.fffffffffffffp-1022
Double.MIN_VALUE 0x0. 0000000000001p-1022

파라미터:
d - 변환 대상의 double
반환값:
이 인수의 16 진수의 캐릭터 라인 표현
도입된 버젼:
1.5

valueOf

public static Double  valueOf(String  s)
                      throws NumberFormatException 
캐릭터 라인 인수 s 로 나타내지는 double 치를 보관 유지하는 Double 객체를 돌려줍니다.

snull 의 경우는,NullPointerException 가 throw 됩니다.

s 내의 선두와 말미의 공백 문자는 무시됩니다. 공백 문자는,String.trim() 메소드로 삭제될 때와 같이 삭제됩니다. 즉, ASCII 의 공백 문자와 제어 문자의 양쪽 모두가 삭제됩니다. s 의 나머지의 문자가, 다음의 자구 구문 규칙에 따라 FloatValue 를 구성합니다.

FloatValue:
Signopt NaN
Signopt Infinity
Signopt FloatingPointLiteral
Signopt HexFloatingPointLiteral
SignedInteger

HexFloatingPointLiteral:
HexSignificand BinaryExponent FloatTypeSuffixopt

HexSignificand:
HexNumeral
HexNumeral .
0x HexDigitsopt. HexDigits
0X HexDigitsopt. HexDigits

BinaryExponent:
BinaryExponentIndicator SignedInteger

BinaryExponentIndicator:
p
P
여기서,Sign,FloatingPointLiteral,HexNumeral,HexDigits,SignedInteger, 및 FloatTypeSuffix「Java 언어 스펙」의 자구 구조 섹션의 정의에 따릅니다. sFloatValue 의 형식이 아닌 경우,NumberFormatException 가 throw 됩니다. 그렇지 않은 경우,s 는 일반적으로의 「부동 소수점 표기」, 즉 정확한 10 진수 또는 16 진수를 나타내고 있다고 보여집니다. 이 정확한 수치는, 개념상은 「무한하게 정확한 바이너리치」에 변환되고 나서, IEEE 754 부동 소수점 계산법에 따르는 일반적으로의 최근 닮고 값 둥근 법 (제로치의 부호 보관 유지를 포함한다)에 따라 double 형에 말 수 있습니다. 마지막으로,double 치를 나타내는 Double 객체가 돌려주어집니다.

부동 소수점치의 로컬라이즈 된 캐릭터 라인 표현을 해석하는 경우,NumberFormat 의 서브 클래스를 사용합니다.

부동 소수점 리터럴의 형태를 결정하는 지시자의 말미 형식 지시자 (1.0ffloat 치,1.0ddouble 치)는, 이 메소드의 결과에 영향을 주지 않습니다. 즉, 입력 캐릭터 라인의 수치는, 타겟의 부동 소수점형에 직접 변환됩니다. 캐릭터 라인을 float 로 변환해,floatdouble 로 변환하는 2 단계의 순서는, 캐릭터 라인을 double 로 변환하는 것과 등가가 아닙니다. 예를 들어,float 리터럴 0.1fdouble0.10000000149011612 로 등가입니다만,float 리터럴 0.1f 는,double 리터럴 0.1 과는 다른 수치를 나타냅니다. 수치 0.1 을 바이너리 부동 소수점수(실수)로 정확하게 나타낼 수 없습니다.

무효인 캐릭터 라인으로 이 메소드가 불려 가거나NumberFormatException 가 throw 되거나 하지 않게 하려면 , 이하의 정규 표현을 사용해 입력 캐릭터 라인을 스크리닝 할 수가 있습니다.

        final String Digits     = "(\\p{Digit}+)";
final String HexDigits  = "(\\p{XDigit}+)";
        // an exponent is 'e' or 'E' followed by an optionally 
        // signed decimal integer.
        final String Exp        = "[eE][+-]? "+Digits;
        final String fpRegex    =
            ("[\\x00-\\x20]*"+  // Optional leading "whitespace"
             "[+-]? (" + // Optional sign character
             "NaN|" +           // "NaN" string
             "Infinity|" +      // "Infinity" string

             // A decimal floating-point string representing a finite positive
             // number without a leading sign has at most five basic pieces:
             // Digits . Digits ExponentPart FloatTypeSuffix
             // 
             // Since this method allows integer-only strings as input
             // in addition to strings of floating-point literals, the
             // two sub-patterns below are simplifications of the grammar
             // productions from the Java Language Specification, 2nd 
             // edition, section 3.10. 2.

             // Digits . _opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
             "((("+Digits+"(\\. )? ("+Digits+"? )("+Exp+")? )|"+

             // .  Digits ExponentPart_opt FloatTypeSuffix_opt
             "(\\. ("+Digits+")("+Exp+")? )|"+

// Hexadecimal strings
       "((" +
// 0[xX] HexDigits . _opt BinaryExponent FloatTypeSuffix_opt
"(0[xX]" + HexDigits + "(\\. )? )|" +

// 0[xX] HexDigits_opt . HexDigits BinaryExponent FloatTypeSuffix_opt
"(0[xX]" + HexDigits + "? (\\. )"+ HexDigits + ")" +

")[pP][+-]? "+ Digits + "))" +
             "[fFdD]? ))" +
             "[\\x00-\\x20]*");// Optional trailing "whitespace"
            
if (Pattern.matches(fpRegex, myString))
            Double.valueOf(myString); // Will not throw NumberFormatException
        else {
            // Perform suitable alternative action
        }
 

파라미터:
s - 구문 분석 되는 캐릭터 라인
반환값:
String 인수에 의해 나타내지는 값을 보관 유지하는 Double 객체
예외:
NumberFormatException - 캐릭터 라인이 구문 분석 가능한 수치를 포함하지 않는 경우

valueOf

public static Double  valueOf(double d)
지정한 double 치를 나타내는 Double 인스턴스를 돌려줍니다. 신규 Double 인스턴스가 불필요한 경우, 일반적으로 이 메소드가 생성자 Double(double) 에 우선해 사용됩니다. 그 이유는, 이 메소드가 빈번하게 요구되는 값을 캐쉬하므로, 조작에 필요한 영역이나 시간이 훨씬 적어도 되는 경우가 많기 때문입니다.

파라미터:
d - double 치
반환값:
d 를 나타내는 Double 인스턴스
도입된 버젼:
1.5

parseDouble

public static double parseDouble(String  s)
                          throws NumberFormatException 
Double 클래스의 valueOf 메소드를 실행했을 경우와 같게, 지정된 String 가 나타내는 값에 초기화된 새로운 double 치를 돌려줍니다.

파라미터:
s - 구문 분석 되는 캐릭터 라인
반환값:
캐릭터 라인 인수로 나타내지는 double
예외:
NumberFormatException - 캐릭터 라인이 구문 분석 가능한 double 치를 포함하지 않는 경우
도입된 버젼:
1.2
관련 항목:
valueOf(String)

isNaN

public static boolean isNaN(double v)
지정된 수치가 비수 (NaN)인 경우에는 true 를, 그렇지 않은 경우는 false 를 돌려줍니다.

파라미터:
v - 판정되는 값
반환값:
인수의 값이 NaN 인 경우는 true, 그렇지 않은 경우는 false

isInfinite

public static boolean isInfinite(double v)
지정된 수치의 절대치가 무한량인 경우에는 true 를, 그렇지 않은 경우에는 false 를 돌려줍니다.

파라미터:
v - 판정되는 값
반환값:
인수가 정 또는 부의 무한치의 경우는 true, 그렇지 않은 경우는 false

isNaN

public boolean isNaN()
Double 치가 비수 (NaN)인 경우에는 true 를, 그렇지 않은 경우는 false 를 돌려줍니다.

반환값:
이 객체가 나타내는 값이 NaN 인 경우는 true, 그렇지 않은 경우는 false

isInfinite

public boolean isInfinite()
Double 치의 절대치가 무한량인 경우에는 true 를, 그렇지 않은 경우에는 false 를 돌려줍니다.

반환값:
이 객체가 나타내는 값이 정의 무한대 또는 부의 무한대인 경우는 true, 그렇지 않은 경우는 false

toString

public String  toString()
Double 객체의 캐릭터 라인 표현을 돌려줍니다. 이 객체가 나타내는 프리미티브(primitive) double 치는, 1 개의 인수를 취하는 toString 메소드를 실행했을 경우와 같은 캐릭터 라인에 변환됩니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 객체의 String 표현
관련 항목:
toString(double)

byteValue

public byte byteValue()
Double 의 값을 (byte 에 캐스트 하는 것으로써) byte 로서 돌려줍니다.

오버라이드(override):
클래스 Number 내의 byteValue
반환값:
byte 형에 변환된 이 객체가 나타내는 double
도입된 버젼:
JDK1. 1

shortValue

public short shortValue()
Double 의 값을 (short 에 캐스트 하는 것으로써) short 로서 돌려줍니다.

오버라이드(override):
클래스 Number 내의 shortValue
반환값:
short 형에 변환된 이 객체가 나타내는 double
도입된 버젼:
JDK1. 1

intValue

public int intValue()
Double 의 값을 (int 형에 캐스트 하는 것으로써) int 로서 돌려줍니다.

정의:
클래스 Number 내의 intValue
반환값:
int 형에 변환된 이 객체가 나타내는 double

longValue

public long longValue()
Double 의 값을 (long 형에 캐스트 하는 것으로써) long 로서 돌려줍니다.

정의:
클래스 Number 내의 longValue
반환값:
long 형에 변환된 이 객체가 나타내는 double

floatValue

public float floatValue()
Double 객체의 float 치를 돌려줍니다.

정의:
클래스 Number 내의 floatValue
반환값:
float 형에 변환된 이 객체가 나타내는 double
도입된 버젼:
JDK1. 0

doubleValue

public double doubleValue()
Double 객체의 double 치를 돌려줍니다.

정의:
클래스 Number 내의 doubleValue
반환값:
이 객체가 나타내는 double

hashCode

public int hashCode()
Double 객체의 해시 코드를 돌려줍니다. 계산된 결과는,doubleToLongBits(double) 메소드의 결과와 완전히 똑같이, 이 Double 객체가 나타내는 프리미티브(primitive) double 치의 long 정수를 비트 표현한 상위 32 비트와 하위 32 비트의 배타적 논리합이 됩니다. 즉, 해시 코드는 다음의 식의 값입니다.
 (int)(v^(v>>>32))
 
다만,v 는 다음의 식에 의해 정의됩니다.
 long v = Double.doubleToLongBits(this.doubleValue());
 

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
이 객체의 해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

equals

public boolean equals(Object  obj)
객체와 지정된 객체를 비교합니다. 결과가 true 가 되는 것은, 인수가 null 가 아니고, 이 객체가 나타내는 double 치와 같은 값을 보관 유지하는 double 를 나타내는 Double 객체인 경우만입니다. 이 때문에, 2 개의 double 치가 동일하다고 보여지는 것은,doubleToLongBits(double) 메소드를 각 치에 적용했을 때에 동일한 long 치가 반환되는 경우만입니다.  

대부분의 경우,Double 클래스의 d1d2 라고 하는 2 개의 인스턴스에 대해,d1.equals(d2) 의 값이 true 가 되는 것은, 다음의 식의 값이 true 가 되는 경우만입니다.

   d1.doubleValue()  == d2.doubleValue()
 

그러나, 예외 사항도 2 개 있습니다.

이 정의에 의해, 해시 테이블은 올바르게 동작합니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
obj - 비교 대상의 객체
반환값:
객체가 같은 경우는 true, 그렇지 않은 경우는 false
관련 항목:
doubleToLongBits(double)

doubleToLongBits

public static long doubleToLongBits(double value)
IEEE 754 부동 소수점의 「더블 포맷 (double format)」비트 레이아웃에 따라, 지정된 부동 소수점의 값을 표현해 돌려줍니다.  

비트 63 (마스크 0x8000000000000000L 에 의해 선택되는 비트)은, 부동 소수점의 부호를 나타냅니다. 비트 62-52 (마스크 0x7ff0000000000000L 에 의해 선택되는 비트)는, 지수를 나타냅니다. 비트 51-0 (마스크 0x000fffffffffffffL 에 의해 선택되는 비트)는, 부동 소수점의 유효치 (가수로 불리는 경우도 있다)를 나타냅니다.  

인수가 정의 무한대치의 경우는,0x7ff0000000000000L 가 돌려주어집니다.  

인수가 부의 무한대치의 경우는,0xfff0000000000000L 가 돌려주어집니다.  

인수가 NaN 의 경우는,0x7ff8000000000000L 가 돌려주어집니다.  

어느 경우도, 반환되는 값은 long 정수이며,longBitsToDouble(long) 메소드를 지정하면(자),doubleToLongBits 에의 인수와 같은 부동 소수점치가 됩니다 (모든 NaN 치가 단일의 「정규」NaN 치에 수납되는 것을 제외한다).

파라미터:
value - double 정밀도의 부동 소수점치
반환값:
부동 소수점치를 나타내는 비트

doubleToRawLongBits

public static long doubleToRawLongBits(double value)
IEEE 754 부동 소수점의 「더블 포맷 (double format)」비트 레이아웃에 따라, 비수 (NaN) 치를 보관 유지하는, 지정된 부동 소수점치의 표현을 돌려줍니다.  

비트 63 (마스크 0x8000000000000000L 에 의해 선택되는 비트)은, 부동 소수점의 부호를 나타냅니다. 비트 62-52 (마스크 0x7ff0000000000000L 에 의해 선택되는 비트)는, 지수를 나타냅니다. 비트 51-0 (마스크 0x000fffffffffffffL 에 의해 선택되는 비트)는, 부동 소수점의 유효치 (가수로 불리는 경우도 있다)를 나타냅니다.  

인수가 정의 무한대치의 경우는,0x7ff0000000000000L 가 돌려주어집니다.  

인수가 부의 무한대치의 경우는,0xfff0000000000000L 가 돌려주어집니다.  

인수가 NaN 의 경우, 반환되는 값은 실제의 NaN 치를 나타내는 long 정수입니다. doubleToLongBits 메소드와는 달라,doubleToRawLongBits 메소드가, 모든 비트 패턴 encode NaN 를 단일의 정규 NaN 치에 수납할 것은 없습니다.  

어느 경우도, 반환되는 값은 long 정수이며,longBitsToDouble(long) 메소드를 지정하면(자),doubleToRawLongBits 에의 인수와 같은 부동 소수점치가 됩니다.

파라미터:
value - double 정밀도의 부동 소수점치
반환값:
부동 소수점치를 나타내는 비트
도입된 버젼:
1.3

longBitsToDouble

public static double longBitsToDouble(long bits)
지정된 비트 표현과 대응하는 double 치를 돌려줍니다. 인수는, IEEE 754 부동 소수점 「배정밀도」비트 배열에 따른 부동 소수점 표현이라고 보여집니다.  

인수가 0x7ff0000000000000L 의 경우는, 정의 무한대치가 돌려주어집니다.  

인수가 0xfff0000000000000L 의 경우는, 부의 무한대치가 돌려주어집니다.  

인수가 0x7ff0000000000001L ~ 0x7fffffffffffffffL, 또는 0xfff0000000000001L ~ 0xffffffffffffffffL 의 범위내의 값인 경우, 결과는 NaN 가 됩니다. Java 에 의해 제공되는 IEEE 754 부동 소수점 조작은, 다른 비트 패턴을 가지는 같은 형태의 2 개의 NaN 치를 식별할 수 없습니다. NaN 의 개별의 값은,Double.doubleToRawLongBits 를 사용하는 경우에만 식별 가능합니다.  

그 다른 경우에서는,s,e, 및 m 의 3 개의 값에 대해 다음의 인수로부터 계산할 수 있다고 합니다.

 int s = ((bits >> 63) == 0) ?  1 : -1;
 int e = (int)((bits >> 52) & 0x7ffL);
 long m = (e == 0) ?
                 (bits & 0xfffffffffffffL) << 1 :
                 (bits & 0xfffffffffffffL) | 0x10000000000000L;
 
이 경우, 부동 소수점치의 결과는, 수식 s·m·2e-1075 의 값과 동일해집니다.

이 메소드는,long 인수와 전혀 같은 비트 패턴을 가지는 double NaN 를 돌려줄 수가 없을 가능성이 있습니다. IEEE 754 에서는, 2 종류의 NaN ( 「시그널을 발생하지 않는 NaN」와「시그널을 발생하는 NaN」)를 구별합니다. IEEE 754 에서는, 2 종류의 NaN ( 「시그널을 발생하지 않는 NaN」와「시그널을 발생하는 NaN」)를 구별합니다. 2 종류의 NaN 의 차이는, 일반적으로 Java 에서는 확인할 수 없습니다. 시그널을 발생하는 NaN 에서의 산술 연산에서는, 시그널을 발생하는 NaN 가, 이종이면서 같은 비트 패턴을 가지는 시그널을 발생하지 않는 NaN 로 바뀝니다. 다만, 시그널을 발생하는 NaN 를 단지 카피하는 일부의 프로세서도, 이 변환도 실시합니다. 특히, 시그널을 발생하는 NaN 를 카피해, 호출측의 메소드에 돌려주는 것으로, 이 변환을 실행할 수 있습니다. 따라서,longBitsToDouble 는, 시그널을 발생하는 NaN 비트 패턴을 가지는 double 를 돌려줄 수가 없을 가능성이 있습니다. 그 결과, 일부의 long 치에서는,doubleToRawLongBits(longBitsToDouble(start)) 는,start 와 등가가 아닌 경우가 있습니다. 더해, 어느 특정의 비트 패턴이 시그널을 발생하는 NaN 를 나타낼까는, 플랫폼에 따라서 다릅니다. 시그널을 발생하지 않는가 시그널을 발생할까에 관계없이, 모든 NaN 비트 패턴은 위에 나타내는 NaN 의 범위에 없으면 안됩니다.

파라미터:
bits - long 정수
반환값:
같은 비트 패턴을 가지는 double 부동 소수점치

compareTo

public int compareTo(Double  anotherDouble)
2 개의 Double 객체를 수치적으로 비교합니다. 이 메소드에 의한 비교는, Java 언어의 수치 비교 연산자 (<, <=, ==, >= >)를 프리미티브(primitive) double 치에 적용했을 경우란, 다음의 2 점으로써 다릅니다. 이렇게 해, 메소드에 의해 적용되는 Double 객체의 자연 순서부로, 「equals 와의 일관성」이 확보됩니다.

정의:
인터페이스 Comparable <Double > 내의 compareTo
파라미터:
anotherDouble - 비교 대상의 Double
반환값:
anotherDouble 가 이 Double 와 같은 수치의 경우는 값 0. DoubleanotherDouble 보다 작은 수치의 경우는 0 보다 작은 값. DoubleanotherDouble 보다 큰 수치의 경우는 0 보다 큰 값
도입된 버젼:
1.2

compare

public static int compare(double d1,
                          double d2)
지정된 2 개의 double 치를 비교합니다. 반환되는 정수치의 부호는, 다음의 호출로 반환되는 정수의 부호와 같게 됩니다.
new Double(d1). compareTo(new Double(d2))
 

파라미터:
d1 - 비교하는 최초의 Object
d2 - 비교하는 2 번째의 Object
반환값:
d1 의 값이 d2 와 동일한 경우는 값 0,d1 의 값이 d2 보다 작은 경우는 0 보다 작은 값,d1 의 값이 d2 보다 큰 경우는 0 보다 큰 값
도입된 버젼:
1.4

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.