次のC++CStringコードを同等のC#.NETに変換するにはどうすればよいですか?
CString str;
int leading_width = 5;
int decimal_places = 2;
int val = 53.4789;
str.Format("%*.*d", leading_width, decimal_places, val);
小数点以下の桁数を可変にするval
には、を使用して文字列に変換してから、を使用しval.ToString
て値を埋め込みますString.PadLeft
。
int leading_width = 5;
int decimal_places = 2;
int val = 53.4789;
string str = val.ToString("N" + decimal_places);
str = str.PadLeft(leading_width);
コードの目的が整数またはその他の数値を文字列に変換することである場合...
string NumString = val.ToString();
マネージコード(c#)には、コード内のすべてのオブジェクトがobject
クラスから継承したこの気の利いたToStringメソッドがあります。
ルールとパディングに関する最終結果に適用できるさまざまなさまざまなフォーマットルールがあります。
詳細については、次のページを参照してください:http: //msdn.microsoft.com/en-us/library/dwhawy9k.aspx
編集
このコードはどうですか
String.Format("%{0," + String.Format("{0}:D{1}", leading_width, decimal_places) + "}", val);
または、「%」を省略して、「D」の代わりに「P」を使用することもできます