atof, _atof_l, _wtof, _wtof_l
Převeďte řetězec na dvojité.
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
Řetězec, který chcete převést.locale
Použití národního prostředí.
Vrácená hodnota
funkce vrátí double hodnotu vyrobených interpretací zadávání znaků jako číslo.Vrácená hodnota je 0.0, pokud vstupní nelze převést na hodnotu typu.
Ve všech případech mimo rozsah kód chyby je nastavena na ERANGE.Pokud parametr předaný je NULL, vyvolat neplatnýpopisovačparametr , jak je popsáno v Ověření parametrů. Pokud je povoleno spuštění pokračovat, nastavit tyto funkce errno na EINVAL a vrátí 0.
Poznámky
Tyto funkce převést znakový řetězec na hodnotu s dvojitou přesností a plovoucí desetinnou čárkou.
Vstupní řetězec je sekvence znaků, které lze interpretovat jako číselnou hodnotu zadaného typu.funkce ukončí čtení vstupního řetězce prvního znaku, který nelze rozpoznat jako část čísla.Tento znak může být znak Null ("\0" nebo "L"\0") ukončení řetězce.
str argument atof a _wtof má následující formulář:
[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]
A whitespace tvoří mezera nebo tabulátor znaky, které jsou ignorovány; signje buď plus (+) nebo mínus (-); a digits jsou jeden nebo více desítkové číslo míst.Žádné číslic se zobrazí před desítkové číslo místo, alespoň jeden musí být uvedena po desítkové číslo místo.Může následovat desítkové číslo číslic exponentu tvoří úvodní písmeno (d, D, e, nebo E) a volitelně podepsané desítkové číslointeger.
Verze těchto funkcí se _l přípony jsou shodné s výjimkou, že používají národní prostředíparametr předaný namísto aktuální národní prostředí.
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tstof |
atof |
atof |
_wtof |
_ttof |
atof |
atof |
_wtof |
Požadavky
Routine(s) |
Požadované hlavička |
---|---|
atof |
<math.h> a <stdlib.h> |
_atof_l |
<math.h> a <stdlib.h> |
_wtof, _wtof_l |
<stdlib.h> nebo <wchar.h> |
Příklad
Tento program zobrazuje, jak lze převést čísla uložená jako řetězce na číselné hodnoty pomocí atof funkce.
// 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 );
}