2010-11-25 5 views
4

C++のストリームマニピュレータに相当するC#はありますか? 例:数字を書式設定する方法の再帰的感情は少ないですか?

int decimalPlaces = 2; 
double pi = 3.14159; 
cout.precision(decimalPlaces); 
cout << pi; 

それは数値を文字列にフォーマットするために数値を文字列にフォーマットする必要が変な感じ。 例:

int decimalPlaces = 2; 
double pi = 3.14159; 
string format = "N" + decimalPlaces.ToString(); 
pi.ToString(format); 

それはC#で行うのか、私が何かを逃しただけでどのようにそれ?

+1

'string format =" N "+ decimalPlaces;'(メソッド呼び出しを省略)として3行目を書くときれいになり、 '.ToString()'が暗黙指定されます。 – cdhowie

+0

@cdhowieええ、私はそれを持っていましたが、それはプロセスの再帰的な感じについての私のポイントを強調するために役立ったので、それを残しました。 – Spike

答えて

2

私は少しそれを縮小します:

int decimalPlaces = 2; 
double pi = 3.14159; 
pi.ToString("N" + decimalPlaces); 

はまた、あなたはがそれを印刷する前に番号をフォーマットするを持っていません。印刷施設はフォーマット構成も受け入れます。

+0

しかし、書式設定の構文はまだ文字列です、そうですか?だから私はdecimalPlaces.ToString()をまだどこか別の場所で呼び出しています。 – Spike

+0

C#は文字列連結を行うときに自動的に 'ToString()'を呼び出します。私はそれを避けるための簡単な方法を知らない。 –

+0

だから、基本的に、いいえ。私はそれを期待していませんでした。ありがとう。 – Spike