Lenguaje

Double.ValueOf Método

Definición

Sobrecargas

Nombre Description
ValueOf(String)

Devuelve un Double objeto que contiene el double valor representado por la cadena sde argumento .

ValueOf(Double)

Devuelve una Double instancia que representa el valor especificado double .

ValueOf(String)

Devuelve un Double objeto que contiene el double valor representado por la cadena sde argumento .

[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

Parámetros

s
String

cadena que se va a analizar.

Devoluciones

objeto Double que contiene el valor representado por el String argumento .

Atributos

Excepciones

si string no se puede analizar como un valor doble.

Comentarios

Devuelve un Double objeto que contiene el double valor representado por la cadena sde argumento .

Si s es null, se produce una NullPointerException excepción .

Se omiten los caracteres de espacios en blanco iniciales y finales de s . El espacio en blanco se quita como si fuera por el String#trim método ; es decir, se quitan tanto el espacio ASCII como los caracteres de control. El resto de debe constituir s como se describe en las reglas de sintaxis léxica:

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

<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>p<dd>P</dl>

</blockquote>

donde Sign, FloatingPointLiteral, HexNumeral, HexDigits, SignedInteger y FloatTypeSuffix se definen en las secciones de estructura léxica de <cita>The Java Language Specification</cite>, excepto que los caracteres de subrayado no se aceptan entre dígitos. Si s no tiene la forma de floatValue, se produce una NumberFormatException excepción . De lo contrario, s se considera que representa un valor decimal exacto en la "notación científica computerizada" habitual o como un valor hexadecimal exacto; este valor numérico exacto se convierte conceptualmente en un valor binario "infinitomente preciso" que, a continuación, se redondea al tipo double por la regla normal redondeada a más cercana de IEEE 754 aritmética de punto flotante, que incluye conservar el signo de un valor cero.

Tenga en cuenta que la regla de redondeo a más cercana también implica el comportamiento de desbordamiento y subflujo; si el valor exacto de s es lo suficientemente grande en magnitud (mayor o igual que (#MAX_VALUE + Math#ulp(double) ulp(MAX_VALUE)/2), el redondeo a double dará como resultado un infinito y si el valor exacto de s es lo suficientemente pequeño en magnitud (menor o igual #MIN_VALUEque /2), el redondeo a float dará como resultado un cero.

Por último, después de redondear un Double objeto que representa este double valor se devuelve.

Para interpretar representaciones de cadena localizadas de un valor de punto flotante, use subclases de java.text.NumberFormat.

Tenga en cuenta que los especificadores de formato final, especificadores que determinan el tipo de un literal de punto flotante (1.0f es un valor; float es un 1.0ddouble valor), no <influyen en><> los resultados de este método. En otras palabras, el valor numérico de la cadena de entrada se convierte directamente en el tipo de punto flotante de destino. La secuencia de dos pasos de conversiones, cadena a float seguida de float a double, es <em>not</em> equivalente a convertir una cadena directamente en double. Por ejemplo, el float literal 0.1f es igual al double valor 0.10000000149011612; el float literal 0.1f representa un valor numérico diferente al double literal 0.1. (El valor numérico 0.1 no se puede representar exactamente en un número de punto flotante binario).

Para evitar llamar a este método en una cadena no válida y tener una NumberFormatException excepción , la expresión regular siguiente se puede usar para pantalla la cadena de entrada:

{@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
             }
            }

Documentación de Java para java.lang.Double.valueOf(java.lang.String).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Consulte también

Se aplica a

ValueOf(Double)

Devuelve una Double instancia que representa el valor especificado 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

Parámetros

d
Double

un valor doble.

Devoluciones

instancia Double de dque representa .

Atributos

Comentarios

Devuelve una Double instancia que representa el valor especificado double . Si no se requiere una nueva Double instancia, este método normalmente se debe usar en preferencia para el constructor #Double(double), ya que es probable que este método produzca un rendimiento de espacio y tiempo significativamente mejor mediante el almacenamiento en caché de valores solicitados con frecuencia.

Agregado en 1.5.

Documentación de Java para java.lang.Double.valueOf(double).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a