Язык

Double.ValueOf Метод

Определение

Перегрузки

Имя. Описание
ValueOf(String)

Double Возвращает объект, содержащий double значение, представленное строкой sаргумента.

ValueOf(Double)

Возвращает экземпляр, представляющий указанное Doubledouble значение.

ValueOf(String)

Double Возвращает объект, содержащий double значение, представленное строкой sаргумента.

[Android.Runtime.Register("valueOf", "(Ljava/lang/String;)Ljava/lang/Double;", "")]
public static Java.Lang.Double ValueOf(string s);
[<Android.Runtime.Register("valueOf", "(Ljava/lang/String;)Ljava/lang/Double;", "")>]
static member ValueOf : string -> Java.Lang.Double

Параметры

s
String

строка, которая будет проанализирована.

Возвращаемое значение

Double объект, содержащий значение, представленное аргументомString.

Атрибуты

Исключения

Значение ,если string не удается проанализировать как двойное значение.

Комментарии

Double Возвращает объект, содержащий double значение, представленное строкой sаргумента.

Если s есть null, NullPointerException то создается исключение.

Начальные и конечные символы пробелов игнорируются s . Пробелы удаляются, как если String#trim бы методом; то есть пробелы ASCII и управляющие символы удаляются. Остальная часть должна представлять собой s, как описано в лексических правилах синтаксиса:

<blockquote><dl><dt>FloatValue:<dd>NaNdd<>Infinity<><>dd<> SignedInteger/dl<>

<dl><dt>HexFloatingPointLiteral: <dd>HexSignificand Binary Exponent FloatTypeSuffix<sub>opt</sub></dl>

<dl><dt>HexSignificand:<dd><>dd.><>sub opt/subHexDigits/dl.<>0X<><>.<>

<dl><dt>dd<>/dl<>

<dl><dt>Binary ExponentIndicator:<dd dd>p<>P</dl>

</blockquote>

where Sign, FloatingPointLiteral, HexNumeral, HexDigits, SignedInteger и FloatTypeSuffix, как определено в лексических разделах <структуры cite>The Java Language Specification</cite>, за исключением того, что подчеркивания не принимаются между цифрами. Если s нет формы FloatValue, NumberFormatException создается исключение. s В противном случае считается, что это точное десятичное значение в обычной "компьютеризированной научной нотации" или как точное шестнадцатеричное значение; это точное числовое значение затем концептуально преобразуется в "бесконечно точное" двоичное значение, которое затем округляется до типа double обычным правилом с круговым к ближайшему правилу IEEE 754 с плавающей запятой, которое включает сохранение знака нулевого значения.

Обратите внимание, что правило округления к ближайшей также подразумевает переполнение и поведение подтека; Если точное значение достаточно большого s размера (больше или равно (#MAX_VALUE + Math#ulp(double) ulp(MAX_VALUE)/2), округление double приведет к бесконечности и если точное значение s достаточно небольшого размера (меньше или равно #MIN_VALUE/2), округление до нуля приведет к нулю.

Наконец, после округления Double объекта, представляющего это double значение, возвращается.

Чтобы интерпретировать локализованные строковые представления значения с плавающей запятой, используйте подклассы java.text.NumberFormat.

Обратите внимание, что описатели формата, определяющие тип литерала с плавающей запятой (1.0fэто значение; float является 1.0ddouble значением), не<><> влияют на результаты этого метода. Другими словами, числовое значение входной строки преобразуется непосредственно в целевой тип с плавающей запятой. Двухэтапная последовательность преобразований, строкаfloat, за которой следует floatdouble, не эквивалентна<>< em/em> для преобразования строки непосредственно в double. Например, литерал равен значениюfloat; 0.1f литерал double представляет другое числовое значение, отличное 0.10000000149011612 от литералаfloat0.1f.double0.1 (Числовое значение 0.1 не может быть точно представлено в двоичном номере с плавающей запятой.)

Чтобы избежать вызова этого метода в недопустимой строке и NumberFormatException их возникновения, для отображения входной строки можно использовать следующее регулярное выражение:

{@code
             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 section 3.10.2 of
                  // The Java Language Specification.

                  // 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
             }
            }

Java документации по java.lang.Double.valueOf(java.lang.String).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

См. также

Применяется к

ValueOf(Double)

Возвращает экземпляр, представляющий указанное Doubledouble значение.

[Android.Runtime.Register("valueOf", "(D)Ljava/lang/Double;", "")]
public static Java.Lang.Double ValueOf(double d);
[<Android.Runtime.Register("valueOf", "(D)Ljava/lang/Double;", "")>]
static member ValueOf : double -> Java.Lang.Double

Параметры

d
Double

двойное значение.

Возвращаемое значение

Double экземпляр, dпредставляющий .

Атрибуты

Комментарии

Возвращает экземпляр, представляющий указанное Doubledouble значение. Если новый Double экземпляр не требуется, этот метод обычно следует использовать в предпочтениях конструктора #Double(double), так как этот метод, скорее всего, обеспечивает значительно лучшую производительность пространства и времени путем кэширования часто запрашиваемых значений.

Добавлено в версии 1.5.

Java документации по java.lang.Double.valueOf(double).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к