std::to_string
提供: cppreference.com
< cpp | string | basic string
ヘッダ <string> で定義 | ||
std::string to_string(int value ); | (1) | (C++11以上) |
std::string to_string(long value ); | (2) | (C++11以上) |
std::string to_string(longlong value ); | (3) | (C++11以上) |
std::string to_string(unsigned value ); | (4) | (C++11以上) |
std::string to_string(unsignedlong value ); | (5) | (C++11以上) |
std::string to_string(unsignedlonglong value ); | (6) | (C++11以上) |
std::string to_string(float value ); | (7) | (C++11以上) |
std::string to_string(double value ); | (8) | (C++11以上) |
std::string to_string(longdouble value ); | (9) | (C++11以上) |
数値を std::string に変換します。
目次 |
[編集]引数
value | - | 変換する数値 |
[編集]戻り値
変換された値を保持する文字列。
[編集]例外
std::string のコンストラクタから std::bad_alloc が投げられるかもしれません。
[編集]ノート
- 浮動小数点型の場合、
std::to_string
は有効桁数がゼロであるような予期しない結果を生成するかもしれません。 例を参照してください。 - 戻り値は
std::cout
がデフォルトで表示する内容と大きく異なるかもしれません。 例を参照してください。 std::to_string
は書式化目的のために現在のロケールを頼ります。 そのため複数のスレッドからのstd::to_string
の並行的な呼び出しは、呼び出しを部分的に直列化するかもしれません。 C++17 では、より高性能なロケールに依存しない代替品として std::to_chars が提供されます。
[編集]例
Run this code
#include <iostream>#include <string> int main(){double f =23.43;double f2 =1e-9;double f3 =1e40;double f4 =1e-40;double f5 =123456789;std::string f_str = std::to_string(f);std::string f_str2 = std::to_string(f2);// Note: returns "0.000000"std::string f_str3 = std::to_string(f3);// Note: Does not return "1e+40".std::string f_str4 = std::to_string(f4);// Note: returns "0.000000"std::string f_str5 = std::to_string(f5);std::cout<<"std::cout: "<< f <<'\n'<<"to_string: "<< f_str <<"\n\n"<<"std::cout: "<< f2 <<'\n'<<"to_string: "<< f_str2 <<"\n\n"<<"std::cout: "<< f3 <<'\n'<<"to_string: "<< f_str3 <<"\n\n"<<"std::cout: "<< f4 <<'\n'<<"to_string: "<< f_str4 <<"\n\n"<<"std::cout: "<< f5 <<'\n'<<"to_string: "<< f_str5 <<'\n';}
出力:
std::cout: 23.43 to_string: 23.430000 std::cout: 1e-09 to_string: 0.000000 std::cout: 1e+40 to_string: 10000000000000000303786028427003666890752.000000 std::cout: 1e-40 to_string: 0.000000 std::cout: 1.23457e+08 to_string: 123456789.000000
[編集]関連項目
(C++11) | 整数または浮動小数点値を wstring に変換します (関数) |
(C++11)(C++11) | 文字列を符号なし整数に変換します (関数) |
(C++11)(C++11)(C++11) | 文字列を符号付き整数に変換します (関数) |
(C++11)(C++11)(C++11) | 文字列を浮動小数点値に変換します (関数) |
(C++17) | 整数値または浮動小数点値を文字シーケンスに変換します (関数) |