strtof() - 文字ストリングの float 型への変換

標準

標準/拡張機能 C/C++ 依存項目

C99
Single UNIX Specification、バージョン 3
C++ TR1 C99

両方 z/OS® V1R7

形式

#define _ISOC99_SOURCE
#include <stdlib.h>

float strtof(const char *__restrict__ nptr, char **__restrict__ endptr);

機能説明

strtof() は、nptr によって示される文字ストリングの一部を float 型に変換します。パラメーター nptr は、float 型の数値として解釈できる文字のシーケンスを示します。

strtof() 関数は、ストリングを次の 3 つの部分に分割します。

  1. 空白文字 (isspace() によって指定された) の先頭シーケンス (空の場合がある)。
  2. 浮動小数点定数として解釈されるか、無限大または NAN を表現するサブジェクト・シーケンス。
  3. 入力ストリングの終了ヌル・バイトを含む、1 つ以上の認識不能文字からなる最終ストリング。

次に関数により、サブジェクト・ストリングの浮動小数点数 への変換を 試みてから、結果を戻します。

サブジェクト・シーケンスの予期される形式は、オプションの正符号 (+) または負符号 (-) と、それに続く次のいずれかです。

  • オプションの基数文字を含む空でない 10 進数字のシーケンスと、その後に続くオプションの指数部。基数文字は、数値の整数部を小数部と分離する文字です。
  • 0x または 0X、オプションの基数文字を含む空でない 16 進数字のシーケンス、接頭部として p または P が付いた 2 を基数とする 10 進指数部、正符号 (+) または負符号 (-)、その後に続く少なくとも 1 桁の 10 進数字のシーケンス。 (例 [-]0xh.hhhhp+/-d)。基数文字は、数値の整数部を小数部と分離する文字です。
  • いずれかの INF または INFINITY (大/小文字を区別しない)。
  • いずれかの NANQ または NANQ(n-char-sequence) (大/小文字を区別しない)。
  • いずれかの NANS または NANS(n-char-sequence) (大/小文字を区別しない)。
  • いずれかの NAN または NAN(n-char-sequence) (大/小文字を区別しない)。

IEEE 2 進数浮動小数点モードで z/OS 定様式入力関数によって認識される、特殊な無限大と NaN のシーケンスについては、『定様式入力関数の scanf ファミリー』を参照してください。

endptr が NULL ポインターでない場合には、正常に変換 された最後のストリングのポインターは、endptr で示さ れるオブジェクトに保管されます。サブジェクト・ストリングが空か、または想定される形式ではない場合 には、変換は実行されません。nptr の値は、endptr によって示されたオブジェクトで保管されます。

戻り値

正常に実行された場合、strtof() は、浮動小数点数の値を戻します。

float 値は、strtof() 関数を呼び出すスレッドの浮動小数点モードによって、16 進数浮動小数点形式または IEEE 2 進数浮動小数点形式となります。この関数は、__isBFP() を使って、起動スレッドの浮動小数点モードを 判別します。

オーバーフローでの場合には、strtof() は +/-HUGE_VALF を戻します。アンダーフローの場合は、0 を戻します。変換が実行されないと、strtof() は 0 を戻します。どちら の場合も、基本の値に応じ、errno が ERANGE に設定されます。

関連情報