1

添加到 db 时未获取小数点值。它会自动四舍五入到最接近的数字。

我已将其声明为

 public Decimal Amt { get; set; }

在我的主要模型中,它是

public int Add(Decimal Amt)
        {
            using (SqlConnection con = new SqlConnection())
            {
                con.ConnectionString = CONNECTION_STRING;
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = "INSERT INTO ledger(Amt)VALUES(@AMT)";                    
                    cmd.Parameters.AddWithValue("@AMT", Amt);
                    int modified = cmd.ExecuteNonQuery();
                    if (con.State == System.Data.ConnectionState.Open) con.Close();
                    return modified;
                }
            }
        }

在 DB 中,它的数据类型是 Decimal(18,0)。

4

3 回答 3

5

Decimal(18,0) 表示小数点右侧存储 0 位。

来源:http: //msdn.microsoft.com/en-us/library/ms187746.aspx

于 2013-06-17T04:59:22.180 回答
1

Decimal(18,0) 中的第二个参数是 0,这意味着您不需要小数位。例如,如果您定义 Decimal(18,2),它将给出 2 个小数位。

于 2013-06-17T05:00:31.620 回答
1

将数据类型更改为 (18,6) 左右,以适合您的为准,

十进制数据类型的第二部分显示在“点”之后需要多少位数。在您的情况下,它是“0”,因此 db 将其四舍五入为最接近的整数。

于 2013-06-17T05:01:16.230 回答