_atodbl、_atodbl_l、_atoldbl、_atoldbl_l、_atoflt _atoflt_l
(Double)_atodbllong double 型 ()_atoldblまたは浮動 _atoflt() に文字列をに変換します。
int _atodbl(
_CRT_DOUBLE * value,
char * str
);
int _atodbl_l (
_CRT_DOUBLE * value,
char * str,
locale_t locale
);
int _atoldbl(
_LDOUBLE * value,
char * str
);
int _atoldbl_l (
_LDOUBLE * value,
char * str,
locale_t locale
);
int _atoflt(
_CRT_FLOAT * value,
char * str
);
int _atoflt_l(
_CRT_FLOAT * value,
char * str,
locale_t locale
);
パラメーター
value
SingleDouble長いまたは浮動小数点値は浮動小数点値から文字列への変換によって生成されました。これらの値は構造体でラップされます。str
浮動小数点値に変換するために解析する文字列。locale
使用するロケール。
戻り値
正常終了した場合は 0 を返します。; 可能な場合はエラー コード Math.h はヘッダー ファイルで定義されている _UNDERFLOW または _OVERFLOW です。
解説
これらの関数は浮動小数点値から文字列をに変換します。関数のこれらの関数と atof ファミリの違いはこれらの関数は浮動小数点コードを生成しません。そのためハードウェア例外が発生しないことです。代わりにエラー条件はエラー コードとして報告されます。
文字列に浮動小数点数として解釈が有効な場合value はゼロに設定されゼロが返されます。
これらの関数のうち _l サフィックスが付けられたバージョンは、現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて同じです。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_atodbl, _atoldbl, _atoflt _atodbl_l, _atoldbl_l, _atoflt_l |
<stdlib.h> |
使用例
// crt_atodbl.c
// Uses _atodbl to convert a string to a double precision
// floating point value.
#include <stdlib.h>
#include <stdio.h>
int main()
{
char str1[256] = "3.141592654";
char abc[256] = "abc";
char oflow[256] = "1.0E+5000";
_CRT_DOUBLE dblval;
_CRT_FLOAT fltval;
int retval;
retval = _atodbl(&dblval, str1);
printf("Double value: %lf\n", dblval.x);
printf("Return value: %d\n\n", retval);
retval = _atoflt(&fltval, str1);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// A non-floating point value: returns 0.
retval = _atoflt(&fltval, abc);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// Overflow.
retval = _atoflt(&fltval, oflow);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
return 0;
}