十进制c的自定义格式

我正在尝试将带小数的十进制值格式化为没有逗号或点的自定义格式,检查http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx但找不到我需要的格式

我需要将例如3​​.1416的十进制值转换为314甚至更好的0000000314,任何线索?

要缩放100并显示最多9个前导零使用

String.Format("{0:0000000000}", (value * 100)); 

仅供展示

 String.Format("{0:##########}", (value * 100)) 

制作一个简单的方法

  public static string FormatNumberMultipliedByOneHundred(string inputString) { inputString = string.Format("{0:########}", (inputString * 100)); return inputString; } 

我想解决这个问题的最好方法是使用ValueConverters。 通过几个简单的步骤,您可以编写一个ValueConverter,它接受任意对象作为输入应用一些转换并输出结果。

这些ValueConverters非常高效,如果您为一次特定转换编写一个转换器(注意高内聚),它们非常方便且可重复使用

你需要的是你必须在Converter类中实现的IValueConverter交互。 转换总是将一些A转换为某些B.因此,接口恰好包含两个方法,这两个方法负责在一个方向上转换并转换回(相反的方向)

编写一个所有转换器都可以inheritance的通用基类是一个好习惯:

 public class ValueConverterBase : IValueConverter { public virtual object Convert (object value, Type convertTargetType, object convertParameter, System.Globalization.CultureInfo convertCulture) { return value; } public virtual object ConvertBack (object value, Type convertBackTargetType, object convertBackParameter, System.Globalization.CultureInfo convertBackCulture) { return value; } } 

然后,您可以编写实际实现转换代码的转换器类:

 public class NumberConverter : ValueConverterBase { public override object Convert (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { // code for converting } public override object ConvertBack (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { // code for converting back } } 

您可以在互联网上找到有关ValueConverter的大量文档和教程。

希望这可以帮助 :)