Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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#_.net_Asp.net Mvc - Fatal编程技术网

C# 如何以字符串格式显示变量?

C# 如何以字符串格式显示变量?,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,他认为,, 付款1=1200.50 付款2=1500.50 总付款=2701 我希望totalpayment的格式为逗号 总付款=2701.00 我尝试使用.ToString,但没有成功。有什么想法吗 public ActionResult Edit(int id, bool update = false) { TBL_PROJ project = db.TBL_PROJ.Find(id); ViewBag.PAYMENT1 = Convert.ToDecimal(projec

他认为,,
付款1=1200.50
付款2=1500.50

总付款=2701

我希望totalpayment的格式为逗号

总付款=2701.00

我尝试使用
.ToString
,但没有成功。有什么想法吗

public ActionResult Edit(int id, bool update = false)
{
    TBL_PROJ project = db.TBL_PROJ.Find(id);

    ViewBag.PAYMENT1 = Convert.ToDecimal(project.PAYMENT1).ToString("#,##0.00");
    ViewBag.PAYMENT2 = Convert.ToDecimal(project.PAYMENT2).ToString("#,##0.00");

    var  totalPayment = project.PAYMENT1 + project.PAYMENT2;
    project.TotalPayment = (float)Math.Round(totalPayment, 2); //This Part

    return View(project);
}

您必须在上一个语句中应用格式

project.TotalPayment = (float)Math.Round(totalPayment, 2).ToString("#,##0.00");

您必须在上一个语句中应用格式

project.TotalPayment = (float)Math.Round(totalPayment, 2).ToString("#,##0.00");

无论何时显示totalpayment,请使用string.Format(格式,totalpayment)或totalpayment.ToString(格式)

正如我预期的那样,totalPayment将成为十进制类型,project.totalPayment也是十进制类型。对totalpayment执行任何格式设置并将其存储在project.totalpayment中都毫无意义

假设您正在标签lblTotalPayment中显示总付款。你应该这样做:

lblTotalPayment.Text = string.Format("{0:#,##0.00}", project.TotalPayment);


无论何时显示totalpayment,请使用string.Format(格式,totalpayment)或totalpayment.ToString(格式)

正如我预期的那样,totalPayment将成为十进制类型,project.totalPayment也是十进制类型。对totalpayment执行任何格式设置并将其存储在project.totalpayment中都毫无意义

假设您正在标签lblTotalPayment中显示总付款。你应该这样做:

lblTotalPayment.Text = string.Format("{0:#,##0.00}", project.TotalPayment);

你必须应用这样的格式,希望它能对你有所帮助

你必须应用这样的格式,希望它能对你有所帮助


首先,您处理的不是“var”,而是实际类型(可能是
decimal
double
),只是隐式定义了类型(也是推断类型)

因此,您实际上要做的是找到一种方法,如何使用格式显示
浮点值

由于
project.TotalPayment
是一个
float
,为了快速使其工作,您可以将其放入
ViewBag
,将其转换为带格式的
string
,并在视图模板中使用,就像处理其他两个属性一样

ViewBag.TotalPayment = Convert.ToDecimal(totalPayment).ToString("#,##0.00");
但是,从我看到的代码中,我可以预期这是ORM生成的属性,因此您的问题是无法修改
TBL_PROJ类
。这就是视图模型进入游戏的地方,对于您的情况,可以这样定义:

public class EditPaymentViewModel 
{ 
    public EditPaymentViewModel(decimal p1, decimal p2)
    {
        this.Payment1 = p1;
        this.Payment2 = p2;
    }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal Payment1  { get; set; }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal Payment2  { get; set; }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal TotalPayment  { get { return Payment1+Payment2; } }
}
那么您的操作方法如下所示:

public ActionResult Edit(int id, bool update = false)
{
    TBL_PROJ project = db.TBL_PROJ.Find(id);

    var viewModel = new EditPaymentViewModel(project.Payment1, project.Payment2); 

    return View(project);
}
当然,您必须更改视图以接受类型为
EditPaymentViewModel
@model EditPaymentViewModel
)的模型。
您可以阅读更多关于
DisplayFormatAttribute

首先,您不是在处理“var”,而是一个实际类型(可能是
decimal
double
),只是隐式定义了类型(也是推断类型)

因此,您实际上要做的是找到一种方法,如何使用格式显示
浮点值

由于
project.TotalPayment
是一个
float
,为了快速使其工作,您可以将其放入
ViewBag
,将其转换为带格式的
string
,并在视图模板中使用,就像处理其他两个属性一样

ViewBag.TotalPayment = Convert.ToDecimal(totalPayment).ToString("#,##0.00");
但是,从我看到的代码中,我可以预期这是ORM生成的属性,因此您的问题是无法修改
TBL_PROJ类
。这就是视图模型进入游戏的地方,对于您的情况,可以这样定义:

public class EditPaymentViewModel 
{ 
    public EditPaymentViewModel(decimal p1, decimal p2)
    {
        this.Payment1 = p1;
        this.Payment2 = p2;
    }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal Payment1  { get; set; }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal Payment2  { get; set; }

    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal TotalPayment  { get { return Payment1+Payment2; } }
}
那么您的操作方法如下所示:

public ActionResult Edit(int id, bool update = false)
{
    TBL_PROJ project = db.TBL_PROJ.Find(id);

    var viewModel = new EditPaymentViewModel(project.Payment1, project.Payment2); 

    return View(project);
}
当然,您必须更改视图以接受类型为
EditPaymentViewModel
@model EditPaymentViewModel
)的模型。
您可以阅读更多关于
DisplayFormatAttribute

var将不会应用于字符串的信息,您需要使用convert.tostring()并在该字符串上应用格式之后,var将不会应用于字符串,您需要使用convert.tostring()并在该字符串上应用格式