如果数字在C#中用逗号后包含一位数,则只显示小数?

时间:2015-07-09 13:13:11

标签: c# asp.net-mvc razor

我在MVC Razor网站上有一个视图,它显示了一个产品价格的局部视图。 现在我的问题是我用这个局部视图显示价格:

@model decimal
<span>@GlobalModelExtensions.Currency.Symbol</span>
<span>@Model.ToString("N0")</span>

这显示了正确的价格,但现在我的客户希望如果价格只包含一位数,那么他需要显示两位小数,如果价格超过一位数,则不会显示两位小数。

实现这一目标的最佳方法是什么?

UPDATE:
This is an example of what i want:
If the price is 90.659 then it must be shown: 91
If the price is 5.659 then it must be shown: 5.66

3 个答案:

答案 0 :(得分:3)

您无法将条件逻辑放入自定义数字格式字符串中。最好的地方是将该逻辑放在模型中,并将属性公开为string而不是浮点类型。

public class MyModel
{
    public decimal Price {get; set;}
    public string FormattedPrice 
    { get 
        {  return Price >= 10 
                ? Price.ToString("#,#")
                : Price.ToString("#,#.00");
        }
    }
}  

答案 1 :(得分:2)

这样的东西?

@if(Model > 9){
   <text>@Model.ToString("N0")</text>
}
else
{
   <text>@Model.ToString("N2")</text>
}

答案 2 :(得分:1)

@Model.ToString("#.##");

@Model.ToString("N2");

  

更新:这是我想要的一个例子:如果价格是90.659那么它必须是:91如果价格是5.659那么它必须是:5.66

if (@Model < 10) @Model.ToString("#.##") else Convert.ToInt32(@Model).ToString()

Console based demonstration here