十进制c的自定义格式

时间:2012-01-12 17:00:11

标签: c# string format decimal

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

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

4 个答案:

答案 0 :(得分:4)

要缩放100并使用

显示最多9个前导零
String.Format("{0:0000000000}", (value * 100));

答案 1 :(得分:1)

仅供展示

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

答案 2 :(得分:1)

制作一个简单的方法

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

答案 3 :(得分:0)

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

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

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

最好编写一个所有转换器都可以继承的通用基类:

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的大量文档和教程。

希望这会有所帮助:)