ページ 11

実数の表示

Posted: 2013年5月16日(木) 14:03
by レフェリア
いつもお世話になっております。

今回はC++での実数を表示する際に
実数250.5を「0250.500」と表示させたいのですが
0250.5と表示されてしまうのですがどのように修正をすればいいかがわかりません。

よろしくお願いします<(_ _)>

コード:

int main()
{
	double x,y;
	std::ostringstream posion_oss;
	x = 250.5;
	y = 360.5;
	posion_oss.fill('0');
	posion_oss << "(" << std::setw(6) << x << ", "<< std::setw(6) << y << ")";
}

Re: 実数の表示

Posted: 2013年5月16日(木) 14:36
by usao
私も書式には疎いのですが,
precision()というメソッドで小数点以下の桁数を設定できるっぽいです.

コード:

posion_oss.precision( 3 );  //小数点以下の桁数
posion_oss.setf( std::ios::fixed );  //これをsetfしな場合,precision()指定が「全体の桁数」になる?
posion_oss << "(" << x << ", " << y << ")";

Re: 実数の表示

Posted: 2013年5月16日(木) 14:40
by レフェリア
すいません<(_ _)>
自己解決しました
一応コードを乗せます

コード:

int main()
{
    double x,y;
    std::ostringstream posion_oss;
    x = 250.5;
    y = 360.5;
    posion_oss.setf( std::ios::showpoint );
    posion_oss << "(" << std::setprecision(5) << std::setw(7) << x << ", "<< std::setw(7) << y << ")";
}

Re: 実数の表示

Posted: 2013年5月16日(木) 14:44
by レフェリア
usaoさん
setprecisionを使うのはわかっていたのですがfixedは盲点でした・・・^^;
一応強引(?)に描画したい形に修正できました。
ありがとうございます^^