atof
atof (ASCII to Floating Point Number) は、文字列を倍精度浮動小数点数に変換するC言語の標準Cライブラリの関数。標準ヘッダーファイル <stdlib.h>
で宣言されている。読み方は規格では特に定められていない。
概要
編集引数で与えられた文字列を解析し、文字列先頭の連続する数値部分をdouble
型の浮動小数点数に変換する。例えば、引数に"0.123abc"
を与えると、0.123
を返す。"abc"
や""
(空文字列)など変換不可能な文字列の場合、0
を返す。C99以降は、"INF"
や"NAN"
といった表現は、それぞれ無限大、非数 (NaN) として変換する(大文字・小文字を区別しない)。
変換された後の数値がdouble
の範囲に収まらない(結果がdouble
で表現できない)場合、C99やC11の仕様上は未定義動作 (undefined behavior) を引き起こす[1][2]。また、変換に失敗してもerrno
を書き換えないかもしれない。このため、atof
の使用を禁止しているガイドラインも存在する[3][4]。
正常に変換可能な文字列の場合は strtod(nptr, NULL)
と同じ結果を返す。
名称は atof であるが戻り値は単精度浮動小数点数型 (float
) ではなく、倍精度浮動小数点数型 (double
) であることに注意が必要。
形式
編集#include <stdlib.h>
double atof(const char *nptr);
脚注
編集関連項目
編集外部リンク
編集atof(3)
– JM Project Linux Library Functions マニュアル- atof - cppreference.com