atof, _wtof

提供: RAD Studio
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;
}