使用格式说明符货币C#的有效方法

时间:2019-05-20 17:32:13

标签: c# .net

我正在创建一个使用货币格式说明符的简单控制台应用程序。但我希望这是最明智的方法。

我已经这样做了:

class Account
{
        public int Number { get; set; }
        public string Holder { get; set; }
        public double Balance { get; protected set; }

        public Account(int number, string holder, double balance)
        {
            Number = number;
            Holder = holder;
            Balance = balance;
        }
}


static void Main(string[] args)
{
       Account acc = new Account(8010, "Bob", 100);

       Console.WriteLine($"{acc.Balance:C}");
}

我想知道这是否是较小的打字方式和最佳方式。你们怎么看?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您正在寻找更短的代码实现方式,但是由于您多次提到货币格式说明符,因此我认为您的问题可以简单地归结为...

  

是否有比这更短的方法来写货币格式的数字   到控制台?

double balance = 100;

Console.WriteLine($"{balance:C}");

有一些选项可以产生相同的结果...

Console.WriteLine($"{balance:C}");
Console.WriteLine("{0:C}", balance);
Console.WriteLine(balance.ToString("C"));
Console.WriteLine(string.Format("{0:C}", balance));

...但是,真的不能指望它比带有单字符格式说明符的插值字符串短得多。

请注意,以上所有内容均使用culture of the current thread格式化货币字符串。如果您想perform formatting using a specific culture,那么您的选择就会越来越少...

CultureInfo culture = CultureInfo.InvariantCulture;

Console.WriteLine(balance.ToString("C", culture));
Console.WriteLine(string.Format(culture, "{0:C}", balance));

正如@NicoD在评论中指出的那样,要存储货币,您还需要考虑使用decimal类型而不是floatdouble