Atof

atof (ASCII to Floating Point Number) は、文字列を倍精度浮動小数点数に変換するC言語の標準Cライブラリの関数。標準ヘッダーファイル <stdlib.h> で宣言されている。読み方は規格では特に定められていない。

 概要 
引数で与えられた文字列を解析し、文字列先頭の連続する数値部分を型の浮動小数点数に変換する。例えば、引数に"0.123abc"を与えると、0.123を返す。"abc"や""（空文字列）など変換不可能な文字列の場合、0を返す。C99以降は、"INF"や"NAN"といった表現は、それぞれ無限大、非数 (NaN) として変換する（大文字・小文字を区別しない）。

変換された後の数値がの範囲に収まらない（結果がで表現できない）場合、C99やC11の仕様上は未定義動作 (undefined behavior) を引き起こすISO/IEC 9899:1999 / §7.20.1 Numeric conversion functionsISO/IEC 9899:201x Programming languages — C / §7.22.1 Numeric conversion functions。また、変換に失敗してもerrnoを書き換えないかもしれない。このため、atofの使用を禁止しているガイドラインも存在するMSC24-C. 非推奨関数や時代遅れの関数を使用しないERR07-C. よりよいエラー検査を行える関数を使用する。

正常に変換可能な文字列の場合は  と同じ結果を返す。

名称は atof であるが戻り値は単精度浮動小数点数型 (float) ではなく、倍精度浮動小数点数型 (double) であることに注意が必要。

ANSI C標準ではない atoff 関数をサポートする処理系もあるatof atoff Subroutine。

 形式 
#include <stdlib.h>
double atof(const char *nptr);

 脚注 

 関連項目 

atoi
atol
itoa

 外部リンク 

 atof - cppreference.com

Category:標準Cライブラリ