Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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#_Asp.net - Fatal编程技术网

C# 如何强制货币符号位于数字的右侧?

C# 如何强制货币符号位于数字的右侧?,c#,asp.net,C#,Asp.net,我的decimal属性上有一个DisplayFormat属性,用于将其显示为货币: [DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)] public decimal Price { get; set; } 以下是我在视图中打印它的方式: @Html.DisplayFor(x => x.Price) 如果价格值为3000,则显示为: kr. 3.000 但我想在金额右侧显示货币,如下所示:

我的decimal属性上有一个DisplayFormat属性,用于将其显示为货币:

[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }
以下是我在视图中打印它的方式:

@Html.DisplayFor(x => x.Price)
如果价格值为3000,则显示为:

kr. 3.000
但我想在金额右侧显示货币,如下所示:

3.000 kr.

如何执行此操作?

使用的货币格式由相关的
CultureInfo
实例定义

某些方法具有重载,这些重载采用
IFormatProvider
(由
CultureInfo
实现),否则默认的
CultureInfo
来自
Thread.CurrentCulture
。后一种情况适用于使用剃须刀助手时

具体而言,请选择并确定货币符号的位置

可以使用创建具有不同设置的自定义区域性

但是,您最好添加自己的特定于货币的帮助器,该帮助器使用自定义的
NumberFormatInfo
,可能通过Razor显示模板,并使用指定应使用该显示模板的属性。

更新 此属性C(标准格式定义正货币值)具有下表中的一个值。符号“$”是货币符号,n是数字

  • 0结果为$n
  • 1导致n$
  • 2结果为$n
  • 3结果为n$

以便克隆原始文化:

CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;

回顾
这也

尝试一种自定义格式,如副本答案中所示,例如
{0:#,###$}
。答案显示了如何对负值和0使用不同的格式格式格式字符串中的数字是,而不是货币位置。您是正确的@PanagiotisKanavos,我现在将更新答案,感谢您的更正。