2012-04-05 2 views
-5

Какого формата ToString необходим для производства этогоОба закручивающихся и ведущие нули формат строка

>  5 to 00000500 
>  10 to 00001000 
>  15 to 00001500 
>  20 to 00002000 

Спасибо.

+3

Эта страница MSDN содержит информацию о том, как подушечка ряд с ведущими нулями - http://msdn.microsoft.com/en -us/library/dd260048.aspx – scibuff

+0

Что нужно делать для 300 или 4000? –

+0

или 100 000 ...? – Matt

ответ

4

Если вы хотите сделать это чисто шпагатом формате ToString, а не с участием умножения тоже, то вы могли бы использовать что-то вроде этого:

string yourString = yourNumber.ToString("000000'00'"); 
3

Try делает

(yourNum * 100).ToString("0000000"); 
1

Вы можете сделать это с помощью поставщика произвольного формата. При условии, что вход представляет собой строку. Его легко изменить на любой тип данных. Просто измените if (arg.GetType() == typeof(String)) на все, что вы хотите отформатировать.

Использование:

  var five = "5"; 
      var ten = "10"; 
      var fiveteen = "15"; 
      var twenty = "20"; 

     var formatprovider = new CustomStringFormatProvider(); 
     var res1 = string.Format(formatprovider, "{0}", five); 
     res1 = string.Format(formatprovider, "{0}", ten); 
     res1 = string.Format(formatprovider, "{0}", fiveteen); 
     res1 = string.Format(formatprovider, "{0}", twenty); 

И вот провайдер формат

public sealed class CustomStringFormatProvider : IFormatProvider, ICustomFormatter 
{ 
    public Object GetFormat(Type formatType) 
    { 
     if (formatType == typeof(ICustomFormatter)) return this; 
     return Thread.CurrentThread.CurrentCulture.GetFormat(formatType); 
    } 
    public String Format(String format, Object arg, IFormatProvider formatProvider) 
    { 
     String s; 

     IFormattable formattable = arg as IFormattable; 

     if (formattable == null) s = arg.ToString(); 
     else s = formattable.ToString(format, formatProvider); 

     if (arg.GetType() == typeof(String)) 
      return String.Join("",Enumerable.Repeat("0", 4).ToArray()) + s + String.Join("",Enumerable.Repeat("0", 4 - s.Length).ToArray()); 
     return s; 
    } 
} 
Смежные вопросы