- ベストアンサー
STLのto_stringにlong double
こんばんは。 STLにto_string関数を見つけました。 変数の型を見るとlong doubleもサポートしているようなので値を入れてみたところfloat値を文字列に変換したものしか得られませんでした。 どのようにすればlong doubleを文字列として取得できるのでしょうか? 環境はVisualStudio2013です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#include <iostream> #include <iomanip> #include <sstream> #include <string> using namespace std; int main() { long double val = 1.0 / 3.0; ostringstream stream; stream << setprecision(20) << val; string str = stream.str(); cout << str << endl; } /* 実行結果 (VC++12) 0.33333333333333331 */
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
まずは、マニュアルを読みましょう http://msdn.microsoft.com/ja-jp/library/ee404875.aspx to_stringには、書式設定の指定は無いようです。 > float値を文字列に変換したもの > long doubleを文字列として取得 floatやdoubleを文字列にするとき、決まった形式というのはありません。 ある程度標準のものはありますが。 long doubleも正しく文字列になっています。 ただ、spirntfの%Lf相当、ということで、floatやdoubleの%fと同じ桁だけしか文字列になっていないだけです。
お礼
すいません、マニュアル見ていませんでした。 ご指摘ありがとうございます。
お礼
早々のご返答ありがとうございます。 ostringstreamやsetprecisionは知りませんでした。 参考になります。 ありがとうございました。