C# 在格式字符串上向右对齐货币
我的C代码中有一个C# 在格式字符串上向右对齐货币,c#,data-annotations,C#,Data Annotations,我的C代码中有一个DisplayFormat,如下所示: [DisplayFormat(DataFormatString = "{0:C0}")] 输出值如下:50美元 但我如何更改此显示格式以显示:50美元?货币符号位于右侧?此页面列出了所有可用于货币的自定义字符串格式,msdn上还有大量指向其他格式字符串页面的链接: 具体来说,它看起来像您想要[DisplayFormat(DataFormatString=“{0:0C}”)]?这似乎太简单了,你已经试过了吗 ---编辑--- 好吧,我想
DisplayFormat
,如下所示:
[DisplayFormat(DataFormatString = "{0:C0}")]
输出值如下:50美元
但我如何更改此显示格式以显示:
50美元
?货币符号位于右侧?此页面列出了所有可用于货币的自定义字符串格式,msdn上还有大量指向其他格式字符串页面的链接:
具体来说,它看起来像您想要[DisplayFormat(DataFormatString=“{0:0C}”)]
?这似乎太简单了,你已经试过了吗
---编辑---
好吧,我想那太简单了C0
表示“打印数字(带0
小数位),然后是货币(C)”。然而,在该页的下一页是关于货币模式的更多细节。埋在其中的是这个链接:
- 0结果为$n
- 1导致n$
- 2结果为$n
- 3结果为n$
因此,您需要货币模式1或3。现在您需要找到某种方法将其放入
DisplayFormat
属性,希望有一种方法可以做到这一点。如果不是,则可以很容易地将其子类化并重写tostring方法,以允许传入货币模式(除非它是密封的类或其他类,在这种情况下为gross)。您可以创建一个自定义NumberFormatInfo对象,该对象具有CurrencyPositivePattern和CurrencyNegativePattern的适当值。例如,请参见,我测试了[DisplayFormat(DataFormatString=“{0:0C}”)]
,结果是20C
,所以。。这不管用谢谢你的回答!我终于在我的BaseController
中提供了一个区域性信息配置。在该配置中,我已将CurrencyPositivePattern
的值设置为3。