Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.Double
public final classDouble
extends Number { public static final doubleMIN_VALUE
=
5e-324; public static final doubleMAX_VALUE
= 1.7976931348623157e+308; public static final doubleNEGATIVE_INFINITY
= -1.0/0.0; public static final doublePOSITIVE_INFINITY
= 1.0/0.0; public static final doubleNaN
= 0.0/0.0; publicDouble
(double value); publicDouble
(String s)
throws NumberFormatException; public StringtoString
(); public booleanequals
(Object obj); public inthashCode
(); public intintValue
(); public longlongValue
(); public floatfloatValue
(); public doubledoubleValue
(); public static StringtoString
(double d); public static DoublevalueOf
(String s)
throws NullPointerException, NumberFormatException; public booleanisNaN
(); public static booleanisNaN
(double v); public booleanisInfinite
(); public static booleanisInfinite
(double v); public static longdoubleToLongBits
(double value); public static doublelongBitsToDouble
(long bits); }
20.10.1 public static final double
MIN_VALUE
= 5e-324;
Постоянная величина этого поля является самым маленьким положительным ненулевым значением типа double
. Это равно значению, возвращенному Double.longBitsToDouble(0x1L)
.
20.10.2 public static final double
MAX_VALUE
= 1.7976931348623157e+308;
Постоянная величина этого поля является самым большим положительным конечным значением типа double
. Это равно возвращенному:
Double.longBitsToDouble(0x7fefffffffffffffL)
20.10.3 public static final double
NEGATIVE_INFINITY
= -1.0/0.0;
Постоянная величина этого поля является отрицательной бесконечностью типа double
. Это равно значению, возвращенному Double.longBitsToDouble(0xfff0000000000000L)
.
20.10.4 public static final double
POSITIVE_INFINITY
= 1.0/0.0;
Постоянная величина этого поля является положительной бесконечностью типа double
. Это равно значению, возвращенному Double.longBitsToDouble(0x7ff0000000000000L)
.
20.10.5 public static final double
NaN
= 0.0/0.0;
Постоянная величина этого поля Не число типа double
. Это равно значению, возвращенному Double.longBitsToDouble(0x7ff8000000000000L)
.
20.10.6 public
Double
(double value)
Этот конструктор инициализирует недавно создаваемый Double
возразите так, чтобы это представило примитивное значение, которое является параметром.
20.10.7 public
Double
(String s)
throws NumberFormatException
Этот конструктор инициализирует недавно создаваемый Double
возразите так, чтобы это представило значение с плавающей точкой типа double
представленный строкой. Строка преобразовывается в a double
значение точно способом, используемым valueOf
метод (§20.9.17).
20.10.8 public String
toString
()
Примитив double
значение представляется этим Double
объект преобразовывается в строку точно как будто методом toString
из одного параметра (§20.10.15).
Переопределения toString
метод Object
(§20.1.2).
20.10.9 public boolean
equals
(Object obj)
Результат true
если и только если параметр не null
и a Double
объект, который представляет то же самое double
оцените как это Double
объект. С этой целью, два double
значения, как полагают, являются тем же самым если и только если метод doubleToLongBits
(§20.10.21) возвращает то же самое long
оцените когда применено к каждого. Отметьте это даже при том, что ==
оператор возвращается false
если обоими операндами является НЭН, это equals
метод возвратится true
если это Double
возразите и параметр оба Double
объекты, которые представляют НЭН. С другой стороны, даже при том, что ==
оператор возвращается true
если один операнд является положительным нулем, и другой отрицательный нуль, это equals
метод возвратится false
если это Double
возразите и параметр представляют, обнуляет различного знака. Это позволяет хеш-таблицам работать должным образом.
Переопределения equals
метод Object
(§20.1.3).
20.10.10 public int
hashCode
()
Результатом является монопольное ИЛИ двух половин представления бита длинного целого, точно как произведено методом doubleToLongBits
(§20.10.21), примитива double
значение представляется этим Double
объект. Таким образом, хэш-код является значением выражения:
(int)(v^(v>>>32))где
v
определяется: long v = Double.doubleToLongBits(this.longValue());Переопределения
hashCode
метод Object
(§20.1.4).20.10.11 public int
intValue
()
double
значение представляется этим Double
объект преобразовывается (§5.1.3), чтобы ввести int
и результат преобразования возвращается.
Переопределения intValue
метод Number
(§20.6.1).
20.10.12 public long
longValue
()
double
значение представляется этим Double
объект преобразовывается (§5.1.3), чтобы ввести long
и результат преобразования возвращается.
Переопределения longValue
метод Number
(§20.6.2).
20.10.13 public float
floatValue
()
double
значение представляется этим Double
объект преобразовывается (§5.1.3), чтобы ввести float
и результат преобразования возвращается.
Переопределения floatValue
метод Number
(§20.6.3).
20.10.14 public double
doubleValue
()
double
значение представляется этим Double
объект возвращается.
Переопределения doubleValue
метод Number
(§20.6.4).
20.10.15 public static String
toString
(double d)
Параметр преобразовывается в читаемый строковый формат следующим образом. Все символы, упомянутые ниже, являются символами ASCII.
"NaN"
.
'-'
('\u002d'
); если знак положителен, никакой символ знака не появляется в результате. Что касается величины м.: "Infinity"
; таким образом положительная бесконечность приводит к результату "Infinity"
и отрицательная бесконечность приводит к результату "-Infinity"
.
"0.0"
; таким образом отрицательный нуль приводит к результату "-0.0"
и положительный нуль приводит к результату "0.0"
.
'.'
(\u002E
), сопровождаемый одной или более десятичными цифрами, представляющими дробную часть м.
'.'
(\u002E
), сопровождаемый десятичными цифрами, представляющими дробную часть a, сопровождаемого буквой 'E'
(\u0045
), сопровождаемый представлением n как десятичное целое число, как произведено методом Integer.toString
из одного параметра (§20.7.12). double
. Таким образом, предположите, что x является точным математическим значением, представленным десятичным представлением, произведенным этим методом для конечного ненулевого параметра d. Затем d должен быть double
оцените самый близкий x; или если два double
значения одинаково близко к x, тогда d должен быть одним из них, и младший значащий бит мантиссы d должен быть 0
.
[Эта спецификация для метода toString
планируется для введения в версии 1.1 Java. В предыдущих версиях Java этот метод производит Inf
вместо Infinity
для бесконечных значений. Кроме того, это представляло конечные значения в той же самой форме как %g
формат printf
функция в языке программирования C, который может потерять информацию, потому что это производит самое большее шесть цифр после десятичной точки.]
20.10.16 public static Double
valueOf
(String s)
throws NullPointerException, NumberFormatException
Строка s
интерпретируется как представление значения с плавающей точкой и a Double
объект, представляющий то значение, создается и возвращается.
Если s
null
, тогда a NullPointerException
бросается.
Продвижение и запаздывание пробела (§20.5.19) символы в s
игнорируются. Остальная часть s
должен составить FloatValue как описано лексическим правилом синтаксиса:
FloatValue:где Знак, Цифры, и ExponentPart как определяются в §3.10.2. Если у этого нет формы FloatValue, то a
Signopt Digits.
DigitsoptExponentPartopt
Signopt.
DigitsExponentPartopt
NumberFormatException
бросается. Иначе, это расценивается как представление точного десятичного значения в обычном "компьютеризированном экспоненциальном представлении"; это точное десятичное значение тогда концептуально преобразовывается в "бесконечно точное" двоичное значение, которое тогда округляется, чтобы ввести double
по обычному правилу раунда-к-самому-близкому IEEE 754 арифметика с плавающей точкой. Наконец, новый объект класса Double
создается, чтобы представить double
значение. Не отметьте это ни один D
ни d
разрешается появиться в s
как индикатор типа, как был бы разрешен в исходном коде Java (§3.10.1).
20.10.17 public boolean
isNaN
()
Результат true
если и только если значение представляется этим Double
объектом является НЭН.
20.10.18 public static boolean
isNaN
(double v)
Результат true
если и только если значением параметра является НЭН.
20.10.19 public boolean
isInfinite
()
Результат true
если и только если значение представляется этим Double
объект является положительной бесконечностью или отрицательной бесконечностью.
20.10.20 public static boolean
isInfinite
(double v)
Результат true
если и только если значение параметра является положительной бесконечностью или отрицательной бесконечностью.
20.10.21 public static long
doubleToLongBits
(double value)
Результатом является представление параметра с плавающей точкой согласно IEEE 754 "двойной формат с плавающей точкой" разрядное расположение:
0x8000000000000000L
) представляет знак числа с плавающей точкой.
0x7ff0000000000000L
) представьте экспоненту.
0x000fffffffffffffL
) представьте мантиссу (иногда названный мантиссой) числа с плавающей точкой.
0x7ff0000000000000L
.
0xfff0000000000000L
.
0x7ff8000000000000L
. long
целое число, что, когда дано longBitsToDouble
метод (§20.10.22), произведет значение с плавающей точкой, равное параметру doubleToLongBits
.20.10.22 public static double
longBitsToDouble
(long bits)
Параметром, как полагают, является представление значения с плавающей точкой согласно IEEE 754 "двойной формат с плавающей точкой" разрядное расположение. То значение с плавающей точкой возвращается как результат.
0x7f80000000000000L
, результатом будет положительная бесконечность.
0xff80000000000000L
, результатом будет отрицательная бесконечность.
0x7ff0000000000001L
через 0x7fffffffffffffffL
или в диапазоне 0xfff0000000000001L
через 0xffffffffffffffffL
, результатом будет НЭН. (Весь IEEE 754 значения НЭН, в действительности, смешивается языком Java в единственное значение по имени НЭН.)
int s = ((bits >> 63) == 0) ? 1 : -1; int e = (int)((bits >> 52) & 0x7ffL); long m = (e == 0) ? (bits & 0xfffffffffffffL) << 1 : (bits & 0xfffffffffffffL) | 0x10000000000000L;Затем результат с плавающей точкой равняется значению математического выражения.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com