Поделиться через


atof, _atof_l, _wtof, _wtof_l

Преобразовать строку в тип double.

double atof(
   const char *str 
);
double _atof_l(
   const char *str,
   _locale_t locale
);
double _wtof(
   const wchar_t *str 
);
double _wtof_l(
   const wchar_t *str,
   _locale_t locale
);

Параметры

  • str
    Строка для преобразования.

  • locale
    Языковой стандарт, который необходимо использовать.

Возвращаемое значение

Каждая функция возвращает значение double, которое создается за счет интерпретации входных символов в виде числа. Возвращаемое значение равно 0.0, если входные данные невозможно преобразовать в значение этого типа.

Во всех случаях вне допустимого диапазона, параметр errno имеет значение ERANGE. Если переданный параметр — NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают 0.

Заметки

Эти функции преобразовывают символьную строку к значению двойной точности с плавающей запятой.

Входная строка — это последовательность символов, которая может быть интерпретирована как числовое значение указанного типа. Функция прекращает чтение входной строки на первом знаке, который она не может распознать как часть числа. Этот символ может быть нулевым символом ("\0" или " L "\0"), которым завершается строка.

Аргумент str для atof и _wtof имеет следующую форму:

[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]

whitespace состоит из пробелов и знаков табуляции, которые игнорируются; sign — плюс (+) или минус (–); digits — одна или несколько десятичных цифр. При отсутствии цифр перед десятичной запятой по крайней мере одна должна появиться после десятичной запятой. За десятичными цифрами может следовать экспонента, которая состоит из вводной буквы (d, D, e или E) и, при необходимости, целого десятичного числа со знаком.

Версии этих функций с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

_UNICODE & _MBCS не определены

_MBCS определено

_UNICODE определено

_tstof

atof

atof

_wtof

_ttof

atof

atof

_wtof

Требования

Программа(ы)

Обязательный заголовок

atof

<math.h> и <stdlib.h>

_atof_l

<math.h> и <stdlib.h>

_wtof, _wtof_l

<stdlib.h> или <wchar.h>

Пример

Эта программа показывает, как числа, хранящиеся в виде строки, могут преобразованы в числовые значения с помощью atof.

// crt_atof.c
//
// This program shows how numbers stored as 
// strings can be converted to numeric
// values using the atof function.

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    char    *str = NULL;
    double  value = 0;

    // An example of the atof function
    // using leading and training spaces.
    str = "  3336402735171707160320 ";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

    // Another example of the atof function
    // using the 'd' exponential formatting keyword.
    str = "3.1412764583d210";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

    // An example of the atof function
    // using the 'e' exponential formatting keyword.
    str = "  -2309.12E-15";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

}
  

Эквивалент в .NET Framework

См. также

Ссылки

Преобразование данных

Поддержка чисел с плавающей запятой

Языковой стандарт

_ecvt

_fcvt

_gcvt

setlocale, _wsetlocale

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l