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 );

}
  

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Konwersja danych

Obsługa liczb zmiennoprzecinkowych

Regionalne

_ecvt

_fcvt

_gcvt

setlocale, _wsetlocale

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l