2012-04-17 5 views
0

「2000」や「2,000,000」などの財務データをフォーマットする方法があるかどうかを知りたい"2M"と "2MM"としています - 基本的に1000をMに置き換えます。フォーマットC#.NET WinFormsおよびWPFアプリケーションでカスタムフォーマット文字列を使用して "2,000"のような "2M"のような財務データ

理想的には、2000.0.ToString( "X")は "2M"を返し、その逆も同様です。そのようなフォーマット文字列は存在しますか?そうでない場合 - 作成することは可能ですか?これらのフォーマット文字列が動作することを

注: - それは、これらの値のいずれかをだかどうかを検出することができ、可能な場合は、適切な書式文字列を適用することができるもの

#,#,M – this will convert 2,000 to 2M (and back) 
#,#,,MM – this will convert 2,000,00 to 2MM (and back) 
#,#,,,B – this will convert 2,000,000,000 to 2B (and back) 

は、しかし、我々はよりダイナミックな何かが必要。

+1

さらに多くのケースを特定する必要があります。たとえば、 "2,001"は例外をスローし、 "2,001"を返すか、 "2M"を返しますか? –

+0

こんにちはボブ - この場合は2.001Mと表示したいと思います。 Mの数を制御することが必要です。つまり、1000、1M、10,000、10M、1234の場合は1.234Mなどとなります。 –

+0

@ GauravSharmaだから、ループ内の金額を1000で割って、最初のプレースホルダ、すなわち1000/1000 = 1Mに達するまでmを追加することができますか?1,000,000/1000/1000 = 1MM –

答えて

3

あなたが望むものを達成するためのフォーマットがわかりません。しかし、インターフェイスIFormatProviderICustomFormatterで自分自身を実装し、これをFormat()ToString()コールに渡すことができます。

関連する問題