Double.ValueOf Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя. | Описание |
|---|---|
| ValueOf(String) |
|
| ValueOf(Double) |
Возвращает экземпляр, представляющий указанное |
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 и используемых в соответствии с условиями, описанными в разделе "".