Double.ValueOf Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| ValueOf(String) |
Retourne un |
| ValueOf(Double) |
Retourne une |
ValueOf(String)
Retourne un Double objet contenant la double valeur représentée par la chaîne sd’argument .
[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
Paramètres
- s
- String
chaîne à analyser.
Retours
objet Double contenant la valeur représentée par l’argument String .
- Attributs
Exceptions
s’il string ne peut pas être analysé sous la forme d’une valeur double.
Remarques
Retourne un Double objet contenant la double valeur représentée par la chaîne sd’argument .
Si s c’est nullle cas, une NullPointerException est levée.
Les espaces blancs de début et de fin sont s ignorés. L’espace blanc est supprimé comme si par la String#trim méthode ; autrement dit, les caractères d’espace ASCII et de contrôle sont supprimés. Le reste de s doit constituer une valeur FloatValue , comme décrit par les règles de syntaxe lexicale :
<blockquote><dl><dt>FloatValue :<dd>Sign<sub>opt</sub>NaN<dd>Sign sub<opt>/sub<dd>Infinity<>dd<>dd<>/dl<>
<dl><dt>HexFloatingPointLiteral : <dd>HexSignificand BinaryExponent FloatTypeSuffix<sub>opt</sub></dl>
<dl><dt>HexSignificand :<dd>HexNumeral<dd>HexNumeral.<dd>>.dd<<>HexDigits./dl <>
<dl><dt>BinaryExponent :<dd>BinaryExponentIndicator SignedInteger</dl>
<dl><dt>BinaryExponentIndicator :<dd>p<dd>P</dl>
</blockquote>
où Sign, FloatPointLiteral, HexNumeral, HexDigits, SignedInteger et FloatTypeSuffix sont définis dans les sections de structure lexicale de <cite>The Java Language Specification</cite>, sauf que les traits de soulignement ne sont pas acceptés entre les chiffres. S’il s n’a pas la forme d’une valeur FloatValue, il NumberFormatException est levée. Sinon, s il est considéré comme représentant une valeur décimale exacte dans la « notation scientifique informatisée » habituelle ou comme une valeur hexadécimale exacte ; cette valeur numérique exacte est ensuite convertie conceptuellement en une valeur binaire « infiniment précise » qui est ensuite arrondie au type double par la règle arrondie à la plus proche habituelle de l’IEEE 754 arithmétique à virgule flottante, qui inclut la conservation du signe d’une valeur zéro.
Notez que la règle la plus proche implique également un dépassement de capacité et un comportement de sous-flux ; si la valeur exacte de la valeur est s suffisamment grande en grandeur (supérieure ou égale à (#MAX_VALUE + Math#ulp(double) ulp(MAX_VALUE)/2), l’arrondi à double provoquera une infinité et si la valeur exacte est s suffisamment petite en magnitude (inférieure ou égale à #MIN_VALUE/2), l’arrondi à float entraînera un zéro.
Enfin, après avoir arrondi un Double objet représentant cette double valeur est retourné.
Pour interpréter les représentations de chaîne localisées d’une valeur à virgule flottante, utilisez des sous-classes de java.text.NumberFormat.
Notez que les spécificateurs de format de fin, les spécificateurs qui déterminent le type d’un littéral à virgule flottante (1.0fest une float valeur ; 1.0d est une double valeur), n’influencent<> pas</em> les résultats de cette méthode. En d’autres termes, la valeur numérique de la chaîne d’entrée est convertie directement en type à virgule flottante cible. La séquence à deux étapes des conversions, chaîne à float suivre en floatdouble, n’est<> pas</em> équivalente à la conversion d’une chaîne directement en double. Par exemple, le float littéral 0.1f est égal à la double valeur 0.10000000149011612; le float littéral 0.1f représente une valeur numérique différente de celle du double littéral 0.1. (La valeur numérique 0.1 ne peut pas être représentée exactement dans un nombre à virgule flottante binaire.)
Pour éviter d’appeler cette méthode sur une chaîne non valide et d’avoir une NumberFormatException levée, l’expression régulière ci-dessous peut être utilisée pour afficher la chaîne d’entrée :
{@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 documentation pour java.lang.Double.valueOf(java.lang.String).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Voir aussi
S’applique à
ValueOf(Double)
Retourne une Double instance représentant la valeur spécifiée double .
[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
Paramètres
- d
- Double
une valeur double.
Retours
instance Double représentant d.
- Attributs
Remarques
Retourne une Double instance représentant la valeur spécifiée double . Si une nouvelle Double instance n’est pas requise, cette méthode doit généralement être utilisée en préférence pour le constructeur #Double(double), car cette méthode est susceptible de produire de meilleurs performances d’espace et de temps en mettant en cache les valeurs fréquemment demandées.
Ajouté à la version 1.5.
Java documentation pour java.lang.Double.valueOf(double).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.