C++でwin32コンソールアプリケーションを作っています。
double型変数をstring型に変換して表示したときに、下のコードだと「1.500000」と表示されますが、「1.5」の様に0を消して表示させたいです。
また、num=1.03だった場合は「1.03」、num=8.765だったなら「8.765」、の様に桁数が変わっても同じように0を消したいです。
どうすれば上手く消せるでしょうか。回答よろしくお願いします。
double型の小数点以下の0を消したいです。
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 13年前
- 住所: 大阪府
- 連絡を取る:
Re: double型の小数点以下の0を消したいです。
少し調べた所、iomanipとsstreamの機能を使い実現できそうです
ですが基本的にあまりわざわざ文字列にして出力する必要性をあまり感じません。
その他のマニピュレータに関しては
http://sla0.jp/2012/04/cpp%E3%81%AEiost ... %E8%A1%A8/
あたりが参考になると思います。
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
using namespace std;
int main()
{
double pi = 3.1; //倍精度浮動小数点
ostringstream sout; //stringの強化版的な
sout << setprecision(0) << pi; //iomanipを使い書式指定
string str = sout.str(); //string型に変換
cout << str << endl; //コンソールに出力
system("pause");
return 0;
}
その他のマニピュレータに関しては
http://sla0.jp/2012/04/cpp%E3%81%AEiost ... %E8%A1%A8/
あたりが参考になると思います。
だいがくせい!
Re: double型の小数点以下の0を消したいです。
tjaファイルのBPMを任意倍に書き換えるプログラムを作っていたのですが、題のような疑問が浮かんだのでプログラムを省略して質問させていただきました。
書き換えるときにstringクラスの文字列操作関数を使っていたので、文字列に変換したかったのです。
上手くいきました。詳しくありがとうございます。勉強になります。
・解決を付け忘れていたため編集しました
書き換えるときにstringクラスの文字列操作関数を使っていたので、文字列に変換したかったのです。
上手くいきました。詳しくありがとうございます。勉強になります。
・解決を付け忘れていたため編集しました