Asp.NET MVC Razor 格式十进制?到 #。###,##

joh*_*020 5 c# asp.net asp.net-mvc razor asp.net-mvc-4

我目前正在开发 ASP.NET MVC 4.5 应用程序。

我尝试将模型中的属性渲染为正确的数值:

ViewModel 中的属性:

public decimal? Price { get; set; }
Run Code Online (Sandbox Code Playgroud)

来自数据库的数据如下所示:99999,99

我想要的格式如下:99.999,99

在我的剃刀视图中,我使用如下属性:

@Model.Price
Run Code Online (Sandbox Code Playgroud)

不幸的是它看起来仍然是这样的:99999.99

你知道我如何格式化该小数吗?我的观点正确吗?

还有没有不使用显示模板的解决方案?

谢谢!!!

der*_*kat 5

尝试这个

decimal value = 99999.99M;
string display = value.ToString("N2", CultureInfo.GetCultureInfo("es"));
Run Code Online (Sandbox Code Playgroud)

显示器

99.999,99

我已经尝试了以下所有值:

"C"用于显示您所在文化中的货币

"C2"小数点后两位数字的货币

"C2", culture:我正在使用小数点为逗号的区域性

"N2", culture:因为我只想显示数字,不显示货币符号


小智 1

请尝试使用本指南

using System;
using System.Globalization;

public class TestClass
{
     public static void Main()
     {
         int i = 100;

         // Creates a CultureInfo for English in Belize.
         CultureInfo bz = new CultureInfo("en-BZ");
         // Displays i formatted as currency for the bz.
         Console.WriteLine(i.ToString("c", bz));

         // Creates a CultureInfo for English in the U.S.
         CultureInfo us = new CultureInfo("en-US");
         // Display i formatted as currency for us.
         Console.WriteLine(i.ToString("c", us));

         // Creates a CultureInfo for Danish in Denmark.
         CultureInfo dk = new CultureInfo("da-DK");
         // Displays i formatted as currency for dk.
         Console.WriteLine(i.ToString("c", dk));
     }
}
Run Code Online (Sandbox Code Playgroud)