两个尾随和前导零字符串格式
问题描述:
什么是产生这种两个尾随和前导零字符串格式
> 5 to 00000500
> 10 to 00001000
> 15 to 00001500
> 20 to 00002000
由于需要的ToString格式。
答
如果你想用一个ToString
格式字符串这样做纯粹,而不是涉及乘过,那么你可以使用这样的事情:
string yourString = yourNumber.ToString("000000'00'");
答
尝试做
(yourNum * 100).ToString("0000000");
答
(number * 100).ToString("D8");
答
你可以用自定义格式提供程序来完成。假设输入是一个字符串。它很容易改变为任何数据类型。只需将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;
}
}
这个MSDN页面有关于如何用前导零的数量的信息 - http://msdn.microsoft.com/en -us/library/dd260048.aspx – scibuff 2012-04-05 10:51:18
300或4000应该如何处理? – 2012-04-05 10:52:25
或100,000 ...? – Matt 2012-04-05 10:53:51