Преобразовать строку широких символов в число с двойной точностью (double), с плавающей точкой (float), или длинное число с двойной точностью (long double)
#include <wchar.h>double wcstod( const wchar_t *ptr,wchar_t **endptr );float wcstof( const wchar_t *ptr,wchar **endptr );long double wcstold( const wchar_t *ptr,wchar **endptr );
NULL
, функция сохраняет в по адресу из значения параматра первый нераспознанный символ, который встретился в строке.libc
Следующие функции преобразуют строку широких символов в число:
double
float
long double
Функции распознают строки, которые могут содержать следующее:
e
или E
, за которыми следует последовательность цифр (со знаком или без) Функция ожидает строку со знаком плюса или минуса, за которым следует одна из следующих конструкций:
0x
или 0X
, за которыми следует последовательность шестнадцатеричных цифр, за которой может следовать символ системы счисления, после которого может следовать показатель степени. Значение корректно преобразовано, если полученное число шестнадцатеричное, а FLT_RADIX
равен 2
.
Интерпретация основания системы счисления чувствительно к локали, указанной в LC_NUMERIC
.
Преобразование прекращается при первом нераспознанном широком символе. Если endptr не NULL
, указатель на нераспознанный символ сохраняется в объекте, на который указывает endptr.
В связи с тем, что 0 это допустимое возвращаемое значения при корректной работе функции, но и значение, сигнализирующее об ошибке, необходимо установить переменной errno значение 0 до вызова функии, а после выполнения проанализировать ее значение. При успешном выполнении функция не изменяет значение errno. |
Преобразованное значение.
Если преобразованное значение вызывает переполнение, функция возвращает HUGE_VAL
с плюсом или минусом в зависимости от знака и устанавливает значение ERANGE
переменной errno. Если основание за пределами диапазона, функция возвращает ноль, а переменной errno устанавливается значение ERANGE
.
Функция возвращает ноль, когда входная строка не может быть преобразована. При появлении ошибки, ее демонстрирует значение errno.
ANSI, POSIX 1003.1
errno wcrtomb(), wcsrtombs(), wcstoimax(), wcstoumax(), wcstok(), wcstol(), wcstoll(), wcstombs(), wcstoul(), wcstoull(), wctob(), wctomb()
Предыдущий раздел: Описание API системной библиотеки