C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > 数値・数学 > 文字列を double 型の数値(小数点数)に変換する

C 標準関数逆引き辞典

:: reverse dictionary ::

数値・数学

※ソースファイルについて


文字列を double 型の数値(小数点数)に変換する

文字列を double 型の数値に変換するには、atof 関数を使います。

≪宣言≫

#include <stdlib.h>
char str[] = "1.234567";
double dbl;

dbl = atof(str);

ソースファイル

dbl1.234567 になります。


strtod 関数も同様に、文字列を double 型の数値に変換できます。
変換できない文字を知りたいときは、こちらを使います。

≪宣言≫

#include <stdlib.h>
char str[] = "9.876543ABC";
char *endstr;
double dbl;

dbl = strtod(str, &endstr);

ソースファイル

dbl9.876543endstr"ABC" になります。


ワイド文字列の場合は、wcstod 関数を使います。

≪宣言≫

#include <locale.h>
#include <stdlib.h>
wchar_t str[] = L"9.876543ABC";
wchar_t *endstr;
double dbl;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

dbl = wcstod(str, &endstr);

ソースファイル

dbl9.876543endstr"ABC" になります。

▼ 関数

double atof(const char *s)

文字列 sdouble 型の数値に変換します。

1文字も変換できなかった場合は 0 を返します。

数値に変換できる所までが変換対象となります。

char str[] = "9.876543ABC";
double dbl;

dbl = atof(str);

ソースファイル

dbl9.876543 になります。

●引数

s … 数値に変換する文字列

●戻り値

文字列 sdouble 型に変換した数値
(1文字も変換できなかった場合は 0

●補足1

オーバーフローが発生したときの戻り値は未定義です。
(予期しない値になります)

●補足2

浮動小数点形式("E" が付く形式)も変換できます。

char str[] = "0.123456789E-3";
double dbl;

dbl = atof(str);

ソースファイル

dbl0.000123456789 になります。

▼ 関数

double strtod(const char *s, char **e)
double wcstod(const wchar_t *s, wchar_t **e)

文字列 sdouble 型の数値に変換します。

1文字も変換できなかった場合は 0 を返します。

数値に変換できる所までが変換対象となり、変換できなかった場合はその文字へのポインタを e に設定します。

すべての文字を変換できた場合は、e"" (空の文字列)を設定します。

●引数

s … 数値に変換する文字列
e … 変換できなかった文字へのポインタ

●戻り値

文字列 sdouble 型に変換した数値
(1文字も変換できなかった場合は 0

●補足1

オーバーフローが発生した場合は、+HUGE_VAL または -HUGE_VAL を返します。(HUGE_VALdouble 型の最大値)

アンダーフローが発生した場合は 0 を返します。

●補足2

浮動小数点形式("E" が付く形式)も変換できます。

char str[] = "0.123456789E-3";
char *endstr;
double dbl;

dbl = strtod(str, &endstr);

ソースファイル

dbl0.000123456789 になります。


ワイド文字列も同じです。

wchar_t str[] = L"0.123456789E-3";
wchar_t *endstr;
double dbl;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

dbl = wcstod(str, &endstr);

ソースファイル

dbl0.000123456789 になります。

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

数値・数学 - number & mathematics -


ホーム > C 標準関数逆引き辞典 > 数値・数学 > 文字列を double 型の数値(小数点数)に変換する

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com