2013-04-29 4 views
15

同様のトピックはすでにフォーラムで議論されています。私は100.00、プログラムのプリントだけで100通りの入力を与えるがC++で小数点以下2桁を表示

100.00は、どのように私は100.00を印刷することができない場合は

double total; 
cin>>total 
cout<<fixed<<setprecision(2)<<total; 

:しかし、私は次のコードでは、いくつかの異なる問題がありますか?

+6

本当に?それは私のシステムで100.00を与えます(セミコロンがないとエラーが出ますが、私が期待したとおりに動作することを固定した後でエラーになります)。おそらく、これをテストしているACTUALコードを投稿してください。 –

+0

あなたのコードに修正を求めていますか? 2小数点以下の数値を印刷する方法を求めていますか? コードを実行するために使用しているコンパイラオプション(または少なくともコンパイラ)を投稿する必要があります。これは問題を見つけるのに非常に便利です;) – Bengalaa

答えて

1

これは、setiosflags(ios :: showpoint)で可能になります。

+0

'showpoint'はここでは必要ありません。小数点以下の桁。彼のコードは正しいですし、彼が望む出力を与えるべきです。 –

50
cout << fixed << setprecision(2) << total; 
setprecision

最小精度を指定します。だから、

cout << setprecision (2) << 1.2; 

は1.2

fixed

cout << setprecision (2) << fixed << 1.2; 

がやり1.20

+1

また、 'setprecision'の意味は、' fixed'、 'scientific'、' floatfmt() '(デフォルト)のように、浮動小数点出力のフォーマットによって異なります。 –

+0

このシステム/実装に依存していますか?多くは、ショーポイントが必要ではないと報告しています...そして、それは私のシステムにとっても同じです。 – Antonio

+0

@JamesKanze ['defaulfloat'](http://en.cppreference.com/w/cpp/io/manip/fixed)がC++ 11に追加されました – nodakai

2

最も簡単な方法を印刷します小数点以下の桁数が固定されてあるだろうと述べている印刷しますこれは、cstdioのprintfを使用しています。実際に、私は誰もprintfを言ったことに驚いています!とにかく、あなたは2つのフローティングポイントで(それが何%、その後、,totalだ)これは、「合計」の値を出力します

#include<cstdio> 

int main() { 
    double total; 
    cin>>total; 
    printf("%.2f\n", total); 
} 

...このように、ライブラリを含める必要があり(それは何です.2f。そして、最後に\nは、ラインの終了間際で、これはUVAの裁判官オンラインコンパイラオプションと連携し、それは次のとおりです。あなたが実行しようとしている

g++ -lm -lcrypt -O2 -pipe -DONLINE_JUDGE filename.cpp 

コードは、このコンパイラオプションで実行されません。.. 。

+0

これは参考になるかもしれませんhttp://stackoverflow.com/ question/2872543/printf-vs-cout-in-c: printfはC++でも使用できますが、例外的なケースです。 – Antonio

+1

Lol、UVa判定、-lcrypt、またはその他のコンパイラオプションはどのようにリモートに質問に関連していますか? –

+0

uhh、3年前自分自身の答えXDまあ、その時、私はこの質問を見つけたとき、私は競争力のあるプログラミングを始めていたので、私の答えのこの "余分な情報"は、プログラミングも同様に) – Bengalaa

2

以下のものを使用してC++で15進数を印刷することが可能である:

#include <iomanip> 
#include <iostream> 

cout << fixed << setprecision(15) << " The Real_Pi is: " << real_pi << endl; 
cout << fixed << setprecision(15) << " My Result_Pi is: " << my_pi << endl; 
cout << fixed << setprecision(15) << " Processing error is: " << Error_of_Computing << endl; 
cout << fixed << setprecision(15) << " Processing time is: " << End_Time-Start_Time << endl; 
_getch(); 

return 0; 
+0

_ "include ... include" _ what? – MickyD

1

あなたは簡単にCのようないつものようにそれを行うことができますstdio.hヘッダファイルを使用します。 printf()を使用して%.2lfを使用する前に(%指定子の後に特定の数を設定します)。

小数点以下の桁を単に出力します。

#include <stdio.h> 
#include <iostream> 
using namespace std; 
int main() 
{ 
    double total=100; 
    printf("%.2lf",total);//this prints 100.00 like as C 
} 
関連する問題