如何在数据库中存储十进制值

本文关键字:存储 十进制 数据库 | 更新日期: 2023-09-27 18:18:44

添加到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)

如何在数据库中存储十进制值

Decimal(18,0)表示在小数点右边存储的0位数字。

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

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

将数据类型更改为(18,6)左右,根据您的需要,

十进制数据类型的第二部分显示在"点"之后需要多少位数字。在你的例子中,它是'0',所以db将其四舍五入到最接近的整数。