Sdílet prostřednictvím


atof, _atof_l, _wtof, _wtof_l

Převod řetězce na hodnotu Dvojitá přesnost.

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ý má být převeden.

  • locale
    Použité národní prostředí.

Vrácená hodnota

Každá funkce vrátí double hodnoty produkované vstupní znaky interpretovat jako číslo.Pokud vstup nelze převést na hodnotu typu, vrácená hodnota je 0.0.

Ve všech případech mimo rozsah, kód chyby je nastavena na ERANGE.Je-li parametr předaný NULL, je vyvolána neplatný parametr obslužné rutiny, jak je popsáno v Ověření parametru.Pokud smí provádění pokračovat, tyto funkce nastaví errno na EINVAL a vrátí 0.

Poznámky

Tyto funkce převést řetězec znaků na hodnotu s dvojitou přesností a plovoucí desetinnou čárkou.

Vstupní řetězec je posloupnost znaků, které lze interpretovat jako hodnotu zadaného typu.Funkce zastaví čtení vstupního řetězce u prvního znaku, který nebude moci 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í tvar:

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

A whitespace se skládá ze znaků mezera nebo tabulátor, které jsou ignorovány; sign je buď plus (+) nebo minus (-); a digits jsou jedna nebo více desítkových číslic.Žádné číslic se zobrazí napravo od desetinné čárky, alespoň jeden musí být uvedena za desetinnou čárkou.Desítkové číslice může být následován exponent, který se skládá z úvodní písmeno (d, D, e, nebo E) a volitelně podepsané desítkové celé číslo.

Verze těchto funkcí s příponou _l jsou stejné s tím rozdílem, že používají parametr předaného národního prostředí namísto aktuálního národního prostředí.

Rutinní mapování obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definováno

_MBCS definováno

_UNICODE definováno

_tstof

atof

atof

_wtof

_ttof

atof

atof

_wtof

Požadavky

Routine(s)

Požadované záhlaví

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 ukazuje, jak lze převést čísla uložená jako řetězce na číselných hodnot 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 );

}
  

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Převod dat

Podpora plovoucí desetinné čárky

Národní prostředí

_ecvt

_fcvt

_gcvt

setlocale, _wsetlocale

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l