atof() — 文字ストリングから浮動小数点への変換
フォーマット
#include <stdlib.h>
double atof(const char *string);
言語レベル
ANSI
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーおよび LC_NUMERIC カテゴリーの影響を受ける可能性があります。詳細については、CCSID およびロケールの理解を参照してください。
説明
atof() 関数は文字ストリングを倍精度浮動小数点値に変換します。
入力データ string は、指定した戻りの型の数値として解釈できる文字のシーケンスです。 関数によって、数値の一部として認識できない入力ストリングは、先頭文字 のところで読み取りが停止されます。この文字は、ストリングを終了するヌル文字が可能です。
atof() 関数では、次の形式の string をとります。
空白文字は、複数のスペースやタブなどの、isspace() 関数に対して true である同じ文字で構成されます。 atof() 関数は、最初の空白文字を無視します。
atof() 関数の場合、digits は 1 桁以上の小数桁数です。小数点の前に桁数が表示されていない場合は、少なくとも 1 桁が小数点の後ろに表示される必要があります。 小数桁数は指数よりも前に置くことができ、小数桁数の後ろに文字 e または E を入れて指数を表します。指数は 10 進数の整数で、符号付きの場合があります。
atof() 関数は、数字以外の文字が E の後ろに続く場合、または指数として e が読み込まれた場合には失敗します。例えば、100elf は浮動小数点値 100.0 に変換されます。 精度は最大 17 桁の有効文字桁です。
戻り値
atof() 関数は、入力文字を数字として解釈することにより作成される double 値を戻します。 関数が入力データをその型の値に変換できない場合は、戻り値は 0 です。 オーバーフローの場合は、関数は errno に ERANGE を設定し、値 -HUGE_VAL または +HUGE_VAL を戻します。
例
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
double x;
char *s;
s = " -2309.12E-15";
x = atof(s); /* x = -2309.12E-15 */
printf("x = %.4e¥n",x);
}
/******************* Output should be similar to: ***************
x = -2.3091e-12
*/
