Sprache

Double.ValueOf Methode

Definition

Überlädt

Name Beschreibung
ValueOf(String)

Gibt ein Double Objekt zurück, das den double Durch die Argumentzeichenfolge sdargestellten Wert enthält.

ValueOf(Double)

Gibt eine Double Instanz zurück, die den angegebenen double Wert darstellt.

ValueOf(String)

Gibt ein Double Objekt zurück, das den double Durch die Argumentzeichenfolge sdargestellten Wert enthält.

[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

Parameter

s
String

die zu analysierende Zeichenfolge.

Gibt zurück

ein Double Objekt, das den durch das String Argument dargestellten Wert enthält.

Attribute

Ausnahmen

wenn string nicht als doppelter Wert analysiert werden kann.

Hinweise

Gibt ein Double Objekt zurück, das den double Durch die Argumentzeichenfolge sdargestellten Wert enthält.

Wenn s ja null, wird ein NullPointerException Wurf ausgelöst.

Führende und nachfolgende Leerzeichen s werden ignoriert. Leerzeichen werden wie bei der String#trim Methode entfernt. Das heißt, sowohl ASCII-Leerzeichen als auch Steuerzeichen werden entfernt. Der Rest s sollte einen FloatValue darstellen, wie in den lexikalischen Syntaxregeln beschrieben:

<blockquote><dl><dt>FloatValue:<dd>Sign<sub>opt</sub dd Sign sub>NaN<opt/sub dd>Sign<sub>opt</sub>Infinity<><><<><>

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

<dl><dt>HexSignificand:<dd>HexNumeral<dd>HexNumeral.<dd>>.dd<>>./dl<>

<dl><dt>BinaryExponent:<dd>BinaryExponentIndicator SignedInteger</dl>

<dl><dt>BinaryExponentIndicator:<dd dd>p<>P</dl>

</blockquote>

Wobei Sign, FloatingPointLiteral, HexNumeral, HexDigits, SignedInteger und FloatTypeSuffix in den lexikalen Strukturabschnitten von <Cite>The Java Language Specification</cite> definiert sind, außer dass Unterstriche zwischen Ziffern nicht akzeptiert werden. Wenn s die Form eines FloatValue-Werts nicht vorhanden ist, wird ein NumberFormatException Wurf ausgelöst. s Andernfalls wird als exakter Dezimalwert in der üblichen "computerisierten wissenschaftlichen Notation" oder als exakter Hexadezimalwert angesehen. Dieser genaue numerische Wert wird dann konzeptionell in einen "unendlich genauen" Binärwert konvertiert, der dann durch die übliche Rund-zu-Nächste-Regel von IEEE 754 Gleitkommaarithmetik gerundet double wird, die das Vorzeichen eines Nullwerts enthält.

Beachten Sie, dass die Rund-zu-Nächste-Regel auch überlauf- und Unterlaufverhalten impliziert; Wenn der genaue Wert s in der Größe (größer als oder gleich (#MAX_VALUE + Math#ulp(double) ulp(MAX_VALUE)/2) groß genug ist, führt die Rundung zu double einer Unendlichkeit und wenn der genaue Wert s in der Größe (kleiner als oder gleich #MIN_VALUE/2) klein genug ist, führt das Runden zum Gleitkomma zu einer Null.

Schließlich wird nach dem Runden eines Double Objekts, das diesen double Wert darstellt, zurückgegeben.

Um lokalisierte Zeichenfolgendarstellungen eines Gleitkommawerts zu interpretieren, verwenden Sie Unterklassen von java.text.NumberFormat.

Beachten Sie, dass nachfolgende Formatbezeichner, Bezeichner, die den Typ eines Gleitkommaliterals bestimmen (1.0f ist ein Wert; float ist ein 1.0ddouble Wert), <em>nicht</em> beeinflussen die Ergebnisse dieser Methode. Mit anderen Worten, der numerische Wert der Eingabezeichenfolge wird direkt in den Ziel-Gleitkommatyp konvertiert. Die zweistufige Abfolge der Konvertierungen, die Zeichenfolge float , gefolgt von floatdouble",em" entspricht <em>nicht</em> der Konvertierung einer Zeichenfolge direkt in double. Beispielsweise ist das float Literal 0.1f gleich dem double Wert 0.10000000149011612; das float Literal 0.1f stellt einen anderen numerischen Wert als das double Literal 0.1dar. (Der numerische Wert 0,1 kann nicht exakt in einer binären Gleitkommazahl dargestellt werden.)

Um das Aufrufen dieser Methode für eine ungültige Zeichenfolge und das Auslösen eines NumberFormatException Fehlers zu vermeiden, kann der folgende reguläre Ausdruck verwendet werden, um die Eingabezeichenfolge anzuzeigen:

{@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 Dokumentation für java.lang.Double.valueOf(java.lang.String).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Weitere Informationen

Gilt für:

ValueOf(Double)

Gibt eine Double Instanz zurück, die den angegebenen double Wert darstellt.

[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

Parameter

d
Double

ein Doppelter Wert.

Gibt zurück

eine Double Instanz, die darstellt d.

Attribute

Hinweise

Gibt eine Double Instanz zurück, die den angegebenen double Wert darstellt. Wenn keine neue Double Instanz erforderlich ist, sollte diese Methode in der Regel vor dem Konstruktor #Double(double)verwendet werden, da diese Methode wahrscheinlich wesentlich bessere Platz- und Zeitleistung liefert, indem häufig angeforderte Werte zwischengespeichert werden.

Hinzugefügt in 1.5.

Java Dokumentation für java.lang.Double.valueOf(double).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: