plucky (3) strtod.3.gz

Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       strtod, strtof, strtold - ASCII 文字列を浮動小数点実数に変換する

書式

       #include <stdlib.h>

       double strtod(const char *nptr, char **endptr);
       float strtof(const char *nptr, char **endptr);
       long double strtold(const char *nptr, char **endptr);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       strtof(), strtold():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

説明

       strtod(),  strtof(), strtold()  関数は、 nptr が指し示す文字列のはじめの部分を double, float, long double
       型の値にそれぞれ変換する。

       入力する文字列 (の先頭部分) は以下の形式が期待されている。 先頭にホワイトスペース、 次にプラス ('+') また
       はマイナス  ('-')  の記号、  その後に  (i)  10  進数、(ii)  16  進数、(iii) 無限、 (iv) NAN (計算できない
       数、not-a-number) のいずれかがある (ホワイトスペース、符号は省略可能。 ホワイトスペースは isspace(3) で識
       別される)。

       10 進数 は 1 文字以上の 10 進の数字の列からなり、 基を表す文字 (radix charater) (小数点。ロケールに依存す
       るが、通常は '.') が含まれることもある。 この後に 10 進の指数部が続いても良い。 10 進の指数部は 'E'  また
       は  'e' と、その後に置かれる正負記号 (省略可)、 およびその後に続く 1 文字以上の 10 進の数字の列からなり、
       10 の何乗であるかを表す。

       16 進数 は、"0x" または "0X" とその後に続く 1 文字以上の 16 進の数字の列からなり、 基を表す文字が含まれる
       こともある。 この後に 2 進の指数部が続いても良い。 2 進の指数部は 'P' または 'p' と、その後に置かれる正負
       記号 (省略可)、 およびその後に続く 1 文字以上の 10 進の数字の列から構成され、 2 の何乗であるかを表す。 基
       を表す文字と 2 進の指数部は、どちらか一方しか存在してはならない。

       無限 は "INF" または "INFINITY" で表され、大文字小文字は区別されない。

       NAN  は "NAN" (大文字小文字は区別されない) で表され、 その後に文字列 (n-char-sequence) が続く場合もある。
       (n-char-sequence) は実装に依存する NAN の型を指定する。

返り値

       これらの関数は、変換された値があれば、それを返す。

       endptr が NULL でないときは、変換に使われた最終文字の次の文字へのポインターが endptr で参照される場所へ保
       存される。

       If  no  conversion is performed, zero is returned and (unless endptr is null) the value of nptr is stored
       in the location referenced by endptr.

       If the correct value would cause overflow, plus or minus HUGE_VAL, HUGE_VALF, or  HUGE_VALL  is  returned
       (according to the return type and sign of the value), and ERANGE is stored in errno.

       If  the  correct  value would cause underflow, a value with magnitude no larger than DBL_MIN, FLT_MIN, or
       LDBL_MIN is returned and ERANGE is stored in errno.

エラー

       ERANGE オーバーフローまたはアンダーフローが起こった。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌──────────────────────────────┬───────────────┬────────────────┐
       │インターフェース属性             │
       ├──────────────────────────────┼───────────────┼────────────────┤
       │strtod(), strtof(), strtold() │ Thread safety │ MT-Safe locale │
       └──────────────────────────────┴───────────────┴────────────────┘

準拠

       POSIX.1-2001, POSIX.1-2008, C99.

       strtod()  was also described in C89.

注意

       成功、失敗どちらの場合でも 0 を返す可能性があるので、 プログラムは呼び出す前に errno を 0  に設定し、呼び
       出し後に errno が 0 以外の値かどうかを確認しエラーが発生したかどうかを判断する 必要がある。

       glibc  の実装では、"NAN" の後ろに置くことができる n-char-sequence は、整数値として解釈される (基数の 8 や
       16 を示す '0' や '0x' を接頭辞として付けることができる)。 この整数値は返り値の仮数部として使われる。

       strtol(3)  のマニュアルページの例を参照。 このページで説明した関数の使用方法も同様である。

関連項目

       atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strfromd(3), strtol(3), strtoul(3)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10  の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。