atof,_wtof
math.h:インデックス への移動
ヘッダーファイル
stdlib.h, math.h
カテゴリ
変換ルーチン,演算ルーチン
プロトタイプ
double atof(const char *s);
double _wtof(const wchar_t *s);
説明
文字列を浮動小数点数に変換します。
- atof は,s が指す文字列を double に変換します。この関数は,次の要素で構成される浮動小数点数の文字表現を認識します。
- タブとスペースからなるオプションの文字列
- オプションの符号
- 数字とオプションの小数点からなる文字列(数字を小数点の両側に指定できる)
- オプションの e または E に続くオプションの符号付き整数
文字列は,次の一般形に一致する必要があります。
[whitespace] [sign] [ddd] [.] [ddd] [e|E[sign]ddd]
atof は,+INF と -INF(正と負の無限大),および +NAN と -NAN(非数)も認識します。
この関数は,最初の認識されない文字で変換を終了します。
strtod および _strtold 関数は,atof と似た機能を持ち,エラーの検出の点では優れているため,アプリケーションによってはこちらの使用をお勧めします。
戻り値
入力文字列の変換後の値を返します。
オーバーフローが発生する場合,atof は,正または負の HUGE_VAL(または _LHUGE_VAL)を返し,errno を ERANGE(結果が範囲外)に設定します。_matherr(または _matherrl)は呼び出されません。
コード例
#include <stdlib.h> #include <math.h> double add_inputs(wchar_t* left, wchar_t* right) { /* Transform the input strings into floats */ double d_left = _wtof(left); double d_right = _wtof(right); /* Add the transformed floats */ return d_left + d_right; }