atof, _wtof
(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;
}