C# 如何使用C将十进制转换成字符串#

C# 如何使用C将十进制转换成字符串#,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我从数据库中得到一些十进制结果,但我想将其转换为字符串。从数据库返回的值类似于2.500000或1.500000,但在本例中,我想将其显示为2.5或1.5 using (SqlConnection con = new SqlConnection(strConnString)) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = con; cmd.CommandType = C

我从数据库中得到一些十进制结果,但我想将其转换为字符串。从数据库返回的值类似于2.500000或1.500000,但在本例中,我想将其显示为2.5或1.5

using (SqlConnection con = new SqlConnection(strConnString))
{
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = @"select DATEDIFF(minute, Min(myDate), Max(myDate)) / 60.0 as hours                 
                            from myTable
                            where userid = @UserID
                              and DT_Submitted = (select CAST(FLOOR( CAST(GETDATE() AS FLOAT)) AS DATETIME))
                              and Checked = 1";

        cmd.Parameters.AddWithValue("@UserID", tempUser.ToString());

        con.Open();
        decimal result = (decimal)cmd.ExecuteScalar();
        lblHours.Text = result.ToString() + " Hours";

        con.Close();
        con.Dispose();
    }
}

使用以下代码将十进制值转换为字符串:

num.ToString( "0.#" ) 

如果您想更好地控制需要如何以字符串格式表示
十进制
,请使用该方法


以下是规则和规则。

您只需调用接受格式字符串的
ToString
重载之一

using (SqlConnection con = new SqlConnection(strConnString))
{
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = @"select DATEDIFF(minute, Min(myDate), Max(myDate)) / 60.0 as hours                 
                            from myTable
                            where userid = @UserID
                              and DT_Submitted = (select CAST(FLOOR( CAST(GETDATE() AS FLOAT)) AS DATETIME))
                              and Checked = 1";

        cmd.Parameters.AddWithValue("@UserID", tempUser.ToString());

        con.Open();
        decimal result = (decimal)cmd.ExecuteScalar();
        lblHours.Text = result.ToString("0.#") + " Hours";

        con.Close();
    }
}

另一方面,您不需要在连接上调用
Dispose
,因为您处于一个using块中,它会自动执行此操作。尽管如此,您还是应该调用
Close

您是否看到使用格式字符串的
ToString()
重载?请在以后的文章中发布。这里没有你的数据库代码的理由。搞错了,伙计。@aron更新了答案谢谢,你救了我一天,这正是我要找的。再次感谢