如何只获得十进制后的两个数字

时间:2010-05-12 14:16:40

标签: sql-server

我在sql表中有钱区,当我按表提取记录并将其绑定到datagrid时它显示金钱以及100.0000十进制四个字符我只需要两个。 Plz建议。

5 个答案:

答案 0 :(得分:3)

在我看来,这种格式化应该在UI端完成。

下面显示的示例使用ASP.NET DataGrid。在列中,您需要在列上指定 DataFormatString 属性。在这种情况下, {0:C2} 会将该属性显示为带有2位小数的货币


<asp:DataGrid ID="grid1" AutoGenerateColumns="false" runat="server">
    <Columns>
        <asp:BoundColumn HeaderText="Product Name" DataField="Name" />
        <asp:BoundColumn HeaderText="Price" DataField="Price" DataFormatString="{0:C2}" />
    </Columns>
</asp:DataGrid>

答案 1 :(得分:2)

select cast(round(123.4321,2) as decimal(18,2))

也是您问题的解决方案。

答案 2 :(得分:0)

如果要以数字格式返回数据,并且应该(而不是将其转换为字符串),那么这就是应用程序表示/格式化问题。

答案 3 :(得分:0)

试试这个:

SELECT
    ROUND(YourColumn,2)
    FROM ...

测试出来:

DECLARE @YourTable table (RowValue money)
INSERT @YourTable VALUES (123.4321)
INSERT @YourTable VALUES (0.001)
INSERT @YourTable VALUES (1.1251)

SELECT  
    RowValue, ROUND(RowValue,2) AS TwoPlaces
    FROM @YourTable

输出:

RowValue              TwoPlaces
--------------------- ---------------------
123.4321              123.43
0.001                 0.00
1.1251                1.13

(3 row(s) affected)

答案 4 :(得分:0)

结帐GridView Examples for ASP.NET 2.0: Formatting the GridView

您需要将DataFormatString属性设置为eg。 “{0:0.00}”