在格式字符串上将货币右对齐

本文关键字:货币 右对齐 格式 字符串 | 更新日期: 2023-09-27 18:21:36

我的 C# 代码中有一个DisplayFormat,如下所示:

[DisplayFormat(DataFormatString = "{0:C0}")]

输出就像:USD 50但是我怎样才能更改此显示格式以显示:50 USD?右边有货币符号?

在格式字符串上将货币右对齐

本页列出了可用于货币的所有自定义字符串格式,MSDN 上也有很多指向其他格式字符串页面的链接:

http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110(.aspx

具体来说,看起来你想要[DisplayFormat(DataFormatString = "{0:0C}")]?这似乎太简单了,你已经尝试过了吗?

---编辑---

好吧,认为这太简单了。 C0意味着"打印数字(小数点后0位(,然后是货币(C("。但是,在该页面的下方是货币模式的更多细节。埋藏在那个链接中的是:

http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencypositivepattern(v=vs.110(.aspx

  • 0 结果在$n
  • 1 结果 n$
  • 2 个结果 $ n
  • 3 结果在 n $

因此,您需要货币模式 1 或 3。现在你需要找到一些方法来把它放到DisplayFormat属性中,希望有一种方法可以做到这一点。如果没有,应该很容易对其进行子类化并重写 tostring 方法以允许传入货币模式(除非它是 sealed 类或其他东西,在这种情况下,是 gross(。