atof,_wtof

提供: RAD Studio
移動先: 案内検索

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;
}