2016-07-08 3 views
0

doubleを0文字の左にパディングされた15文字の文字列としてフォーマットする必要があります。 文字列に2桁を含める必要がありますが、小数点以下の桁区切り記号は含まないようにしてください。小数点と2桁を持たないC#のダブルタイプの書式

私は以下のコードを使用しましたが、フォーマット文字列のみを使用するより良い方法があるのだろうかと思います。

double value = 15.85; 
CultureInfo info = CultureInfo.GetCultureInfo("en-US"); 
string s = (value).ToString("F2", info).Replace(".", string.Empty).PadLeft(15, "0"[0]); 
//will output 000000000001585 
+2

:リテラル文字を使用するには、単一引用符を使用します。 '.PadLeft(15、 '0')' –

答えて

3

純粋フォーマット文字列と小数点なしで小数点以下の桁を表示する方法はありませんが、文字列置換/パディングよりも小数点を除去するための簡単な方法があります - ちょうど100で値を乗算:話題の先端オフ

(value*100).ToString("000000000000000"); 
+0

シンプルで便利。これは文化の問題を解決します。 –

4
double value = 15.85; 

string s1 = String.Format("{0:000000000000000}", value); // 000000000000015 
string s2 = String.Format("{0:0000.00}", value);   // 0015.85 
+0

どちらも、OPが求める出力( '000000000001585')はありません。 –

+0

@DStanleyああ、小数点を超えて何も望んでいないかのように解釈しました。 'String.Format(" {0:000000000000000} "、値* 100);'。 –

+0

@LuizVazこのアプローチでは別の出力が得られるので混乱します。 –

関連する問題