File tree Expand file tree Collapse file tree 1 file changed +75
-0
lines changed
Expand file tree Collapse file tree 1 file changed +75
-0
lines changed Original file line number Diff line number Diff line change 1+ # atof
2+ * cstdlib[ meta header]
3+ * std[ meta namespace]
4+ * function[ meta id-type]
5+
6+ ``` cpp
7+ double atof ( const char* str );
8+ ```
9+
10+ ## 概要
11+
12+ `str`を`float`に変換する。
13+
14+ ## 変換方法
15+
16+ - 空白文字から始まる場合、最初の非空白文字から変換する。
17+
18+ - `0x` または `0X` の場合、空白でない16進数として処理する。
19+
20+ - `e`または`E`は、それより前を基数、その後ろを指数として処理する。
21+
22+ - \+ 、\-は変換後の符号に適用される。
23+
24+ - `INF`または`INFINITY`(大小文字区別せず)は`inf`を返す。
25+
26+ - NAN(大小文字区別せず)はそれ以前の数値を返す。もし以前の数値がないなら、`nan`を返す。
27+
28+
29+ ## 返り値
30+
31+ 変換可能ならば変換後の数値。
32+
33+ 変換後の数値が`float`の範囲外なら、その動作は未定義である。
34+
35+ 変換不能なら`0.0`を返す。
36+
37+
38+ ## 例
39+
40+ ```cpp example
41+ #include <cstdlib>
42+ #include <iostream>
43+
44+ int main()
45+ {
46+ std::cout << std::atof("0.0000000123") << '\n'
47+ << std::atof("0.012") << '\n'
48+ << std::atof("15e16") << '\n'
49+ << std::atof("-0x1afp-2") << '\n'
50+ << std::atof("inF") << '\n'
51+ << std::atof("12Nan23") << '\n'
52+ << std::atof("NAN") << '\n'
53+ << std::atof("invalid") << '\n';
54+ }
55+ ```
56+
57+ ## バージョン
58+ ### 処理系
59+ - Clang: ?
60+ - GCC: 13[ mark verified]
61+ - ICC: ?
62+ - Visual C++
63+
64+ ## 出力結果
65+
66+ ```
67+ 1.23e-08
68+ 0.012
69+ 1.5e+17
70+ -107.75
71+ inf
72+ 12
73+ nan
74+ 0
75+ ```
You can’t perform that action at this time.
0 commit comments