std::atof
From cppreference.com
| ヘッダ <cstdlib> で定義 |
||
| double atof( const char* str ); |
||
str で指されるバイト文字列を浮動小数点値として解釈します。
関数は、最初の空白でない文字が見つかるまで、std::isspace で決定される空白文字をすべて破棄します。次に、有効な浮動小数点表現を形成するために可能な限り多くの文字を取得し、それらを浮動小数点値に変換します。有効な浮動小数点値は、次のいずれかになります。
- 10進数浮動小数点表記。以下の部分から構成されます。
- (任意)プラスまたはマイナスの記号
- 10進数字の非空のシーケンス。オプションで小数点文字(現在のC ロケールによって決定される)を含む(シグニフィカンドを定義する)。
- (任意)
eまたはE、それにオプションのマイナスまたはプラス記号と10進数字の非空のシーケンスが続く(10を底とする指数を定義する)。
|
(C++11以降) |
- 現在インストールされているC ロケールで受け入れられる可能性のあるその他の表現。
目次 |
[編集] パラメータ
| str | - | 解釈されるヌル終端バイト文字列へのポインタ |
[編集] 戻り値
成功した場合、double str の内容に対応する値。変換された値が戻り値の型の範囲を超える場合、戻り値は未定義です。変換が実行できない場合、0.0 が返されます。
[編集] 例
このコードを実行
#include <cstdlib> #include <iostream> int main() { std::cout << std::atof("0.0000000123") << '\n' << std::atof("0.012") << '\n' << std::atof("15e16") << '\n' << std::atof("-0x1afp-2") << '\n' << std::atof("inF") << '\n' << std::atof("Nan") << '\n' << std::atof("invalid") << '\n'; }
出力
1.23e-08 0.012 1.5e+17 -107.75 inf nan 0
[編集] 関連項目
| (C++11)(C++11)(C++11) |
文字列を浮動小数点値に変換する (function) |
| バイト文字列を浮動小数点値に変換する (関数) | |
| (C++17) |
文字シーケンスを整数値または浮動小数点数値に変換する (関数) |
| (C++11) |
バイト文字列を整数値に変換する (関数) |
| C のドキュメント (atof について)
| |