atof, _atof_l, _wtof, _wtof_l
Konwertowanie ciągu na podwójny.
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
);
Parametry
str
Ciąg do konwersji.locale
Ustawienia regionalne do użycia.
Wartość zwracana
Każda funkcja zwraca double wartość wytworzonych przez zinterpretowanie wprowadzanie znaków jako liczba.Wartość zwracana jest 0,0, jeśli dane wejściowe nie można przekonwertować na wartość tego typu.
We wszystkich przypadkach spoza zakresu, numer błędu jest równa ERANGE.Jeśli parametr przekazany w jest NULL, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, te funkcje ustawiają errno na EINVAL i zwracają wartość 0.
Uwagi
Tych funkcji konwertuje ciąg znaków na wartość podwójnej precyzji, liczb zmiennoprzecinkowych.
Ciąg wejściowy jest sekwencją znaków, które mogą być interpretowane jako wartość liczbowa określonego typu.Funkcja przestaje odczytywać ciąg wejściowy przy pierwszym znaku, którego nie może rozpoznać jako elementu liczby.Ten znak może być znak null ('\0' lub L '\0') kończące ciąg.
str Argument atof i _wtof ma następującą postać:
[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]
A whitespace zawiera znaki spacji lub tabulatorów, które są ignorowane; sign jest albo plus (+) lub minus (-); i digits są jeden lub więcej cyfr dziesiętnych.Jeśli nie cyfr przed separatorem dziesiętnym, co najmniej jeden musi znajdować się po separatorze dziesiętnym.Cyfry dziesiętne mogą nastąpić wykładniku, który składa się z listem (d, D, e, lub E) i opcjonalnie podpisane dziesiętna liczba całkowita.
Wersje tych funkcji, które mają przyrostek _l są identyczne, z tą różnicą, że korzystają z przekazanego parametru ustawień regionalnych, zamiast bieżących ustawień regionalnych.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tstof |
atof |
atof |
_wtof |
_ttof |
atof |
atof |
_wtof |
Wymagania
Routine(s) |
Wymagany nagłówek |
---|---|
atof |
<Math.h> i <stdlib.h> |
_atof_l |
<Math.h> i <stdlib.h> |
_wtof, _wtof_l |
<stdlib.h> lub <wchar.h> |
Przykład
Program ten pokazuje, jak liczby przechowywane jako ciągi mogą być konwertowane na wartości liczbowe za pomocą atof funkcji.
// 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 );
}