Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: GoldWolf
Udoskonalił: Piotr DejaVu Szawdyński
Język C++

strtod

[funkcja] Konwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double).

Składnia

C/C++
#include <cstdlib>

double strtod( const char * str, char ** end );

Argumenty

ArgumentOpis
const char *strŁańcuch znaków zakończony znakiem terminalnym, który ma zostać przekonwertowany.
char **endZwraca adres znaku na którym została zakończona konwersja liczby konwertowanej. W przypadku gdy wartość argumentu będzie wynosić NULL to adres znaku nie zostanie zwrócony.

Zwracana wartość

Zwraca przekonwertowaną wartość typu double w przypadku sukcesu.

Funkcja zwraca wartość HUGE_VAL lub -HUGE_VAL jeżeli wartość jest zbyt duża by reprezentacja wartości zmieściła się w typie double. Znak +/- jest zależny od wartości konwertowanej.

Funkcja zwraca wartość 0 jeżeli konwersja nie może zostać przeprowadzona lub wystąpi niedomiar.

Opis szczegółowy

Funkcja konwertuje łańcuch znaków na liczbę zmiennoprzecinkową. Łańcuch znaków jest konwertowany do chwili napotkania znaku nie poddającego się konwersji (np. znak terminalny).

Funkcja ustawia » standard Cerrno na wartość ERANGE jeżeli wystąpił błąd podczas konwersji (przepełnienie lub niedomiar).

Funkcja ustawia wartość argumentu end na adres znaku na którym zakończyła się konwersja liczby pod warunkiem, że end jest różne od NULL. Jeżeli konwersja się nie powiedzie (i end różne od NULL), wartość end zostanie ustawiona na str.

Budowa wejściowego łańcucha znaków

Łańcuch znaków musi reprezentować liczbę rzeczywistą w zapisie naukowym albo dziesiętnym. Liczba może być poprzedzona znakami białymi - są one ignorowane. Pierwszy napotkany znak, który nie pasuje do zapisu naukowego bądź dziesiętnego przerywa dopasowywanie.

Przykład

C/C++
#include <cstdio>
#include <cstdlib>

int main()
{
    char str[] = "3.14 3.22";
    char * end;
    double pi, r;
    pi = strtod( str, & end );
    r = strtod( end, NULL );
    printf( "Pole kola = %.2lf\n",( pi * r * r ) );
    return 0;
}
Standardowe wyjście programu:
Pole kola = 32.56

Zagadnienia powiązane

atofKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja)

Linki zewnętrzne