Język C++
strtod
[funkcja] Konwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double).Składnia
#include <cstdlib>
double strtod( const char * str, char ** end );
Argumenty
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
errno 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
#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
atof | Konwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.