Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在格式字符串上向右对齐货币_C#_Data Annotations - Fatal编程技术网

C# 在格式字符串上向右对齐货币

C# 在格式字符串上向右对齐货币,c#,data-annotations,C#,Data Annotations,我的C代码中有一个DisplayFormat,如下所示: [DisplayFormat(DataFormatString = "{0:C0}")] 输出值如下:50美元 但我如何更改此显示格式以显示:50美元?货币符号位于右侧?此页面列出了所有可用于货币的自定义字符串格式,msdn上还有大量指向其他格式字符串页面的链接: 具体来说,它看起来像您想要[DisplayFormat(DataFormatString=“{0:0C}”)]?这似乎太简单了,你已经试过了吗 ---编辑--- 好吧,我想

我的C代码中有一个
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。