atof, _atof_l, _wtof, _wtof_l
Konwertowanie ciągu, Podwójna.
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, aby użyć.
Wartość zwracana
Każda funkcja zwraca double wartość wyprodukowanych przez zinterpretowanie wprowadzanie znaków jako liczba.Wartość zwracana jest 0.0, jeśli dane wejściowe nie można przekonwertować wartości tego typu.
We wszystkich przypadkach spoza zakresu errno jest ustawiona ERANGE.Jeśli parametr przekazywany w NULL, obsługi nieprawidłowyparametr jest wywoływany, jak opisano w Sprawdzanie poprawności parametru. Jeśli wykonanie może kontynuować, ustaw te funkcje errno do EINVAL i zwraca wartość 0.
Uwagi
Te funkcje konwertować ciąg znaków do wartości o podwójnej precyzji, zmiennoprzecinkowych.
Ciąg wejściowy jest sekwencja znaków, które mogą być interpretowane jako wartości liczbowe określonego typu.funkcja Zatrzymuje czytanie ciąg wejściowy od pierwszego znaku, który nie jest rozpoznawana jako część numeru.Znak ten może być znak null ('\0' lub L '\0') kończące ciąg.
str argument atof i _wtof ma następujący formularz:
[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]
A whitespace składa się ze znaków spacja lub tabulator, które są ignorowane; signjest albo plus (+) lub minus (-); i digits są jeden lub więcej cyfr liczba dziesiętna .Jeśli nie cyfr pojawia się przed punktem liczba dziesiętna , co najmniej jeden musi znajdować się po separatorze liczba dziesiętna .Cyfr liczba dziesiętna może następować wykładniku, który składa się z listu (d, D, e, lub E) i opcjonalnie podpisane liczba dziesiętnaliczba całkowita.
Wersje te funkcje, z _l sufiks są identyczne, z wyjątkiem, że korzystają z ustawienia regionalneparametr przekazany zamiast bieżącego ustawienia regionalne.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tstof |
atof |
atof |
_wtof |
_ttof |
atof |
atof |
_wtof |
Wymagania
Routine(s) |
Wymaganego 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 funkcja.
// 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 );
}