Compartir a través de


Cadena a las funciones de valor numérico

Comentarios

Cada función de la familia de strtod convierte una cadena terminada en null a un valor numérico.Las funciones disponibles se muestran en la tabla siguiente.

Función

Descripción

strtod

Cadena de convierte el valor de doble precisión de punto flotante

strtol

Cadena convert el entero largo

strtoul

Cadena convert el entero unsigned long

_strtoi64

Cadena de convertir en un entero de 64 bits de __int64

_strtoui64

Cadena de convertir en un entero de 64 bits sin signo de __int64

wcstod, wcstol, wcstoul, y _wcstoi64 son versiones de caracteres anchos de strtod, de strtol, de strtoul, y de _strtoi64, respectivamente.El argumento de cadena a cada una de estas funciones de carácter ancho es una cadena de caracteres; cada función se comporta idénticamente a su equivalente de solo-byte-carácter de otra manera.

la función de strtod toma dos argumentos: el primero es la cadena de entrada, y la segunda un puntero al carácter que finaliza el proceso de conversión.strtol, strtoul, _strtoi64 y _strtoui64 tienen un tercer argumento como base de número el uso en el proceso de conversión.

La cadena de entrada es una secuencia de caracteres que se pueden interpretar como valor numérico del tipo especificado.Cada función finaliza la lectura de la cadena del primer carácter que no puede reconocer como parte de un número.Puede ser el carácter null de terminación.Para strtol, strtoul, _strtoi64, y _strtoui64, este carácter de terminación también puede ser el primer carácter numérico es mayor o igual que la base de número proporcionada por.

Si el puntero tras un carácter de la FIN-de-conversión no se establece en NULL en tiempo de llamada, un puntero al carácter que se detuvo el análisis se almacenará allí en su lugar.Si ninguna conversión se puede realizar (no se encontraron dígitos válidos o base no válida se especificó), el valor del puntero de la cadena se almacena en esa dirección.

strtod cuenta con una cadena con el formato siguiente:

[espacio en blanco] [sign] [digits] [**.**digits] [{d | D | e | E} [sign]digits]

Un espacio en blanco puede ser el espacio o caracteres de tabulación, se omiten que; el signo es más (+) o menos (); y digits es uno o más dígitos decimales.Si ningún dígitos aparecen antes del carácter de base, al menos uno debe aparecer después del carácter de base.Los dígitos decimales pueden ir seguidos por un exponente, formada por una letra preliminar (d, d, E, o E) y un entero opcionalmente firmado.Si no aparece una parte del exponente ni un carácter de base, un carácter de base se supone para seguir el último dígito de la cadena.El primer carácter que no encaja en este formulario detiene el análisis.

strtol, strtoul, _strtoi64, y las funciones de _strtoui64 esperan una cadena con el formato siguiente:

[espacio en blanco] [{+ | }] [0 [{ x | x }]] [digits]

Si el argumento base está entre 2 y 36, se utiliza como base del número.Si es 0, los caracteres iniciales que hace referencia el puntero de la FIN-de-conversión se utilizan para determinar la base.si el primer carácter es 0 y el segundo carácter no es “x” o “X”, la cadena se interpreta como entero octal; si no, se interpreta como un número decimal.si el primer carácter es “0" y el segundo carácter es “x” o “X”, la cadena se interpreta como entero hexadecimal.si el primer carácter es “1" con “9", la cadena se interpreta como entero decimal.Las letras” a la “z” (o “A” a la “z ") se asignan los valores 10 a 35; sólo las letras cuyo asignaban valores son menos que la base se permiten.strtoul y _strtoui64 permiten especificar más (+) o menos prefijo de signo (de**–**); un signo menos principal indica que el valor devuelto se negado.

El valor de salida se ve afectado por el valor de la categoría de LC_NUMERIC de configuración regional; vea setlocale para obtener más información.Las versiones de estas funciones sin el sufijo de _l utilizan la configuración regional actual para este comportamiento configuración; dependientes las versiones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en su lugar.

Cuando funciona el valor devuelto por estos provocaría un desbordamiento o un subdesbordamiento, o cuando la conversión no son valores de posible caso, especial cambian como se muestra a continuación:

Función

Condition

valor devuelto

strtod

Desbordamiento

+/- HUGE_VAL

strtod

subdesbordamiento o ninguna conversión

0

strtol

+ Desbordamiento

LONG_MAX

strtol

- Desbordamiento

LONG_MIN

strtol

subdesbordamiento o ninguna conversión

0

_strtoi64

+ Desbordamiento

_I64_MAX

_strtoi64

- Desbordamiento

_I64_MIN

_strtoi64

ninguna conversión

0

_strtoui64

Desbordamiento

_UI64_MAX

_strtoui64

ninguna conversión

0

_I64_MAX, _I64_MIN, y _UI64_MAX son definidas en LIMITS.H.

wcstod, wcstol, wcstoul, _wcstoi64, y _wcstoui64 son versiones de caracteres anchos de strtod, de strtol, de strtoul, de _strtoi64, y de _strtoui64, respectivamente; el puntero a un argumento de la FIN-de-conversión a cada una de estas funciones de carácter ancho es una cadena de caracteres.Si no, cada una de estas funciones de carácter ancho se comporta idénticamente a su equivalente de solo-byte-carácter.

Vea también

Referencia

Conversión de datos

Configuración regional

Interpretación de secuencias de Multibyte- Carácter

Compatibilidad de punto flotante

atof, _atof_l, _wtof, _wtof_l