我正在创建一个使用货币格式说明符的简单控制台应用程序。但我希望这是最明智的方法。
我已经这样做了:
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}");
}
我想知道这是否是较小的打字方式和最佳方式。你们怎么看?
答案 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
类型而不是float
或double
: