2012-04-05 71 views
-5

什么是产生这种两个尾随和前导零字符串格式

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

由于需要的ToString格式。

+3

这个MSDN页面有关于如何用前导零的数量的信息 - http://msdn.microsoft.com/en -us/library/dd260048.aspx – scibuff 2012-04-05 10:51:18

+0

300或4000应该如何处理? – 2012-04-05 10:52:25

+0

或100,000 ...? – Matt 2012-04-05 10:53:51

回答

4

如果你想用一个ToString格式字符串这样做纯粹,而不是涉及乘过,那么你可以使用这样的事情:

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

尝试做

(yourNum * 100).ToString("0000000"); 
2
(number * 100).ToString("D8"); 
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; 
    } 
} 
相关问题