GridView单元格中的舍入值

Wat*_* v2 0 c# asp.net gridview

我有一个GridView,它以编程方式绑定到一个List<T>地方,T是我的自定义对象,比方说OrderItem.十进制类型值显示许多小数位.我想将它们四舍五入到小数点后两位.我怎么做?

这是我的大致内容:

public class OrderItem
{
    public Product Product { get; set; }
    public int Quantity { get; set; }
    public decimal GrossAmount { get; set; }
}

public class Product
{
    public string ProductName { get; set; }
    public decimal Price { get; set; }
    public decimal DiscountPercent { get; set; }
}



    <asp:GridView ID="dgOrderItems" runat="server" AutoGenerateColumns = "false">

        <Columns>
            <asp:TemplateField HeaderText = "Product">
                <ItemTemplate>
                    <%# Eval("Product.ProductName") %>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText = "Price">
                <ItemTemplate>
                    <%# Eval("Product.Price") %>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:BoundField DataField = "Quantity" HeaderText = "Quantity" />
            <asp:BoundField DataField = "GrossAmount" HeaderText = "Gross Amount" />

            <asp:TemplateField HeaderText = "Discount (%)">
                <ItemTemplate>
                    <%# Eval("Product.DiscountPercent") %>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>            
    </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

Jam*_*See 5

使用TemplateFields上Eval中可用的格式,即:

<%# Eval("Product.Price", "{0:C}") %>
Run Code Online (Sandbox Code Playgroud)

对于Bound Fields,使用BoundField.DataFormatString属性,即:

<asp:BoundField DataField="GrossAmount" 
                HeaderText="Gross Amount" 
                DataFormatString="{0:f2}" />
Run Code Online (Sandbox Code Playgroud)

有关可以使用的格式字符串,请参阅标准数字格式字符串.