std:: stof, std:: stod, std:: stold
|
ヘッダーで定義
<string>
|
||
|
float
stof
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(1) | (C++11以降) |
|
float
stof
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(2) | (C++11以降) |
|
double
stod
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(3) | (C++11以降) |
|
double
stod
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(4) | (C++11以降) |
|
long
double
stold
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(5) | (C++11以降) |
|
long
double
stold
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(6) | (C++11以降) |
文字列内の浮動小数点値を解釈します str 。
ptr を、変換関数内部の char * (1,3,5) 型または wchar_t * (2,4,6) 型の内部ポインタとする。
関数は( std::isspace によって判定される)空白文字を最初の非空白文字が見つかるまで破棄します。その後、有効な浮動小数点表現を形成するために可能な限りの文字列を取り出し、浮動小数点値に変換します。有効な浮動小数点値は以下のいずれかです:
- 10進浮動小数点式。以下の部分で構成されます:
-
- (オプション) プラスまたはマイナス記号
- 空でない10進数のシーケンス(現在のC locale によって決定される)に、オプションで小数点文字を含む(仮数部を定義)
-
(オプション)
eまたはEの後に、オプションのマイナスまたはプラス記号と空でない10進数のシーケンスが続く(基数 10 の指数を定義)
- 16進浮動小数点表現。以下の部分で構成されます:
-
- (オプション) プラスまたはマイナス記号
-
0xまたは0X - 現在のC locale で決定される小数点文字を含む可能性のある、空でない16進数字のシーケンス(仮数を定義)
-
(オプション)
pまたはPに続く、オプションのマイナスまたはプラス記号と空でない10進数字のシーケンス(基数 2 の指数を定義)
- infinity 式。以下の部分で構成されています:
-
- (オプション) プラスまたはマイナス記号
-
INFまたはINFINITY大文字小文字を無視
- not-a-number 式。以下の部分で構成されます:
-
- (optional) プラスまたはマイナス記号
-
NANまたはNAN(char_sequence )(NAN部分の大文字小文字は無視)。 char_sequence には数字、ラテン文字、アンダースコアのみ使用可能。結果はquiet NaN浮動小数点値となる。
- 現在インストールされているC ロケール で受け入れられる可能性のあるその他の式。
pos が null ポインタでない場合、 ptr は str. c_str ( ) 内で最初に変換されなかった文字のアドレスを受け取り、その文字のインデックスが計算されて * pos に格納され、変換によって処理された文字数が示されます。
目次 |
パラメータ
| str | - | 変換対象の文字列 |
| pos | - | 処理された文字数を格納する整数のアドレス |
戻り値
指定された浮動小数点型に変換された文字列。
例外
std::invalid_argument 変換が実行できなかった場合。
std::out_of_range 変換された値が結果型の範囲外となる場合、または基盤となる関数( std::strtof 、 std::strtod または std::strtold )が errno を ERANGE に設定した場合。
例
|
このセクションは不完全です
理由: 例がありません |
不具合報告
以下の動作変更欠陥報告書は、以前に公開されたC++標準に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2009 | C++11 |
std::out_of_range
変換値が結果型の範囲外となる場合に
スローされない |
スローされる |
| LWG 2403 | C++11 |
stof
が
std::strtod
または
std::wcstod
を呼び出す
|
stof
が
std::strtof
または
std::wcstof
を呼び出す
|
関連項目
|
(C++11)
(C++11)
(C++11)
|
文字列を符号付き整数に変換する
(関数) |
|
(C++11)
(C++11)
|
文字列を符号なし整数に変換する
(関数) |
|
(C++17)
|
文字シーケンスを整数または浮動小数点値に変換する
(関数) |