Razor 页面必须同时显示两种不同的货币,即:用句点和逗号格式化数字,但不带符号。因此,而不是:
3,000.00 雷亚尔 9,000.00 美元
只会有:
3,000.00 9,000.00
我正在使用像
这样的数据注释方法[DataType(DataType.Currency)]
public float PrecoUsd { get; set; }
果然符号出现了。 如何没有它?
最佳答案
DataTypeAttribute
与 DataType.Currency
枚举值将输入设置为带有符号标记的货币值,具体取决于当前文化或在 web.config 中设置的全局化属性。基于 .NET 数字格式字符串,您可以使用 DataFormatString
与 DisplayFormatAttribute
一起使用多种表示形式:
<强>1。 Standard Numeric Format
[DisplayFormat(DataFormatString = "{0:N2}")]
public float PrecoUsd { get; set; }
<强>2。 Custom Numeric Format
// using placeholder '#'
[DisplayFormat(DataFormatString = "{0:#,#.00}")]
public float PrecoUsd { get; set; }
// using placeholder '0'
[DisplayFormat(DataFormatString = "{0:0,0.00}")]
public float PrecoUsd { get; set; }
两者都可以使用DisplayFor
或EditorFor
来显示值:
@Html.DisplayFor(model => model.PrecoUsd)
@Html.EditorFor(model => model.PrecoUsd)
注意:#,#.##
的使用返回 3,000 而不是所需的 3,000.00(参见 this demo 证明)。至于显示与数字输入分开的货币符号,请使用 DisplayAttribute
例如[Display(Name = "US$")]
。
关于c# - 没有符号的货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46748848/