2016-07-19 6 views
0

固定の書式のテキストファイルに書き出しようとしていて、数字の書式を正しく設定できません。先行ゼロと暗示された小数で埋められる必要があります。小数点以下の後にゼロを残さずに左パッドを浮動小数点にします。

例:

43.80 

出力をする必要があります:

0000004380 

これまでのところ、私は小数点を置き換える、文字列に二重に変換しようとしましたが、その後、「とパッドしています0 "となる。

((amount.ToString()).Replace(".","")).PadLeft(10, '0') 

この問題は、番号の末尾がゼロの場合に発生します。上記の例は次のようになります。

0000000438 

いずれかの提案がありますか?

+0

'Decimal.Truncate(量* 100m).ToString(" 0 ")。PadLeft(10、 '0')'それは、私が考えることである。 –

+0

[C#Padding Amount With Zeros]の可能な複製(http://stackoverflow.com/questions/9587819/c-sharp-padding-amount-with-zeros) –

答えて

1
decimal value = 34.80M; 
int intVal = (int)(value * 100); 
return intVal.ToString("0000000000"); 
0

あなたは試みることができる:

((string.Format("{0:0.00}", amount)).Replace(".","")).PadLeft(10, '0') 

を価値はあなたが.ToString()フォーマット文字列を渡すことができます0

0

のときに第二小数点を失うことはありません。その方法この記事に記載されているとおり: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx

入力値は常に小数点以下2桁ですか?もしそうなら、あなたは小数を取り除くために100を掛けことができ、その後、.ToString( "D10")

(INT)(43.80 * 100).ToString( "D10")

0

するために、このべき仕事をしなさい:$"{(int)(amount * 100):D010}"

関連する問題