Double.ValueOf Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| ValueOf(String) |
Gibt ein |
| ValueOf(Double) |
Gibt eine |
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.