指定默认格式Decimal.ToString的()方法(Specify default format

2019-10-20 21:00发布

我有很多调用的应用Decimal.ToString的(无效) 。 默认的格式是不是需要什么。 我可以改变这些调用其他的一个Decimal.ToString的过载 ,但如果我没得还要好。 那么,有没有指定Decimal.ToString的(无效)方法不同的格式,这样我就不用修改任何调用此方法的一种方式?

更新

正如下面的回答表明,这是可以做到我想要的,但我不应该这样做,因为它不是良好的编程习惯。 有其中涉及重写调用许多替代方案; 我打算去的方法是存储所需的格式字符串常量,并传递到电话:

class Example
{
    const string s_DecimalFormat = "N2";

    private decimal myDecimal1 = 12.345;
    private decimal myDecimal2 = 6.7;

    public void Method()
    {
        System.Console.WriteLine(myDecimal1.ToString(s_DecimalFormat));
        System.Console.WriteLine(myDecimal2.ToString(s_DecimalFormat));
    }
}

Answer 1:

从理论上讲,如果你改变System.Globalization.CultureInfo.CurrentCulture的东西,格式化小数你想要的方式,这会工作。 它会打开你不想与10英尺极触摸蠕虫的一个巨大的可以。 不要这样做。 将所有您的来电。 也许写它的方法。



Answer 2:

一个扩展方法可能是好的,在这里。 就像是:

public static string ToMyString(this decimal value)
{
   return value.ToString("your formatting");
}

我@nvoigt同意改变全球化的设置是一个坏主意



Answer 3:

你可以编写自己的扩展方法。 举个例子:

public class Test
{

    private void DoStuff()
    {

        Decimal d = new Decimal();
        d = 0.5M;

        Console.WriteLine("{0}", d);
        Console.WriteLine("{0}", d.ToCustomString());

    }

}

public static class Extensions
{
    public static string ToCustomString(this Decimal number)
    {
        return string.Format("Blah {0}", number.ToString());
    }
}

输出:

0.5
Blah 0.5

当使用Decimal.ToCustomString代替的ToString,至少在这种情况下,小数前缀为“嗒嗒”

你可以写格式的扩展方法,你想返回,授予您需要使用扩展方法,而不是的ToString()



文章来源: Specify default format for Decimal.ToString() method