:: reverse dictionary ::
※ソースファイルについて
double 型の数値(小数点数)に変換する文字列を double 型の数値に変換するには、atof 関数を使います。
#include <stdlib.h>
charstr[] = "1.234567";doubledbl; dbl = atof(str);
dbl は 1.234567 になります。
strtod 関数も同様に、文字列を double 型の数値に変換できます。
変換できない文字を知りたいときは、こちらを使います。
#include <stdlib.h>
charstr[] = "9.876543ABC";char*endstr;doubledbl; dbl = strtod(str, &endstr);
dbl は 9.876543 、endstr は "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);
dbl は 9.876543 、endstr は "ABC" になります。
doubleatof(const char*s)
文字列 s を double 型の数値に変換します。
1文字も変換できなかった場合は 0 を返します。
数値に変換できる所までが変換対象となります。
charstr[] = "9.876543ABC";doubledbl; dbl = atof(str);
dbl は 9.876543 になります。
s … 数値に変換する文字列
文字列 s を double 型に変換した数値
(1文字も変換できなかった場合は 0 )
オーバーフローが発生したときの戻り値は未定義です。
(予期しない値になります)
浮動小数点形式("E" が付く形式)も変換できます。
charstr[] = "0.123456789E-3";doubledbl; dbl = atof(str);
dbl は 0.000123456789 になります。
doublestrtod(const char*s,char**e)doublewcstod(constwchar_t *s, wchar_t **e)
文字列 s を double 型の数値に変換します。
1文字も変換できなかった場合は 0 を返します。
数値に変換できる所までが変換対象となり、変換できなかった場合はその文字へのポインタを e に設定します。
すべての文字を変換できた場合は、e に "" (空の文字列)を設定します。
s … 数値に変換する文字列
e … 変換できなかった文字へのポインタ
文字列 s を double 型に変換した数値
(1文字も変換できなかった場合は 0 )
オーバーフローが発生した場合は、+HUGE_VAL または -HUGE_VAL を返します。(HUGE_VAL は double 型の最大値)
アンダーフローが発生した場合は 0 を返します。
浮動小数点形式("E" が付く形式)も変換できます。
charstr[] = "0.123456789E-3";char*endstr;doubledbl; dbl = strtod(str, &endstr);
dbl は 0.000123456789 になります。
ワイド文字列も同じです。
wchar_t str[] = L"0.123456789E-3";
wchar_t *endstr;
double dbl;
setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */
dbl = wcstod(str, &endstr);
dbl は 0.000123456789 になります。
int 型の数値(整数)に変換するlong 型の数値(整数)に変換するdouble 型の数値(小数点数)に変換する
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com