C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でdouble型を文字列に変換する方法【std::to_stringの使い方】

C++では、std::to_string関数を使うことで、double型の値を簡単に文字列(string)へ変換できます。この関数は引数としてdouble型の値を受け取り、その値を文字の並びとして格納したstringオブジェクトを返します。

以下に、実際の使用例を示すサンプルプログラムを紹介します。

サンプルコード

#include <iostream>
#include <string.h>
using namespace std;
int main() {
    double d = 238649.21316934;
    string s = to_string(d);
    cout << "Conversion of double to string: " << s;
    return 0;
}

実行結果

上記プログラムを実行すると、出力は次のようになります。

Conversion of double to string: 238649.213169

プログラムの解説

それでは、このプログラムの動作を順番に見ていきましょう。

まず、double型の変数dを宣言し、238649.21316934という値で初期化しています。次に、to_string関数にこのdouble型の値を渡して文字列へ変換し、その結果を変数sに格納します。最後に、coutを使って変換後の文字列を出力しています。

該当するコード部分は以下の通りです。

double d = 238649.21316934;
string s = to_string(d);
cout << "Conversion of double to string: " << s;

注意点:小数点以下の精度について

実行結果を見ると、元の値「238649.21316934」が「238649.213169」と表示されています。これは、std::to_stringがデフォルトで小数点以下6桁までしか出力しないためです。より多くの桁数が必要な場合は、std::ostringstreamとstd::setprecisionを組み合わせることで精度を自由に制御できます。

#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
int main() {
    double d = 238649.21316934;
    ostringstream oss;
    oss << fixed << setprecision(8) << d;
    string s = oss.str();
    cout << s; // 238649.21316934
    return 0;
}

このように、単純な変換にはto_stringが便利ですが、精度を厳密に扱いたい場面ではostringstreamの活用を検討するとよいでしょう。

  1. C#で文字のリスト(char配列)を文字列に変換する方法

    C#では、char型の配列やリストを文字列(string)に変換するのは非常に簡単です。stringクラスのコンストラクタに文字配列を渡すだけで、たった1行で変換できます。ここでは、その基本的な手順とサンプルコードを解説します。 変換の手順 手順1:文字を設定する まず、変換元となる文字をchar配列に設定します。 char[] arr = new char[5]; arr[0] = Y; arr[1] = E; arr[2] = S; 手順2:文字列に変換する new string()コンストラクタを使用すると、char配列をそのまま文字列へ変換できます。 string res = new

  2. Javaでformatメソッドを使ってdouble値を文字列に変換する方法

    format()メソッドとはString.format()メソッドは、書式指定文字列と可変長引数(varargs)を受け取り、指定された書式に従って整形された新しい文字列オブジェクトを返すメソッドです。double型の値を文字列に変換したい場合も、このformat()メソッドが利用できます。書式指定文字列として"%f"を渡し、第2引数に変換対象のdouble値を指定するだけでOKです。例1:ユーザー入力したdouble値を変換するScannerクラスでキーボードから入力を受け付け、そのdouble値を文字列に変換するサンプルです。import java.util.Scann