如何在数据库中存储十进制值
本文关键字:存储 十进制 数据库 | 更新日期: 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将其四舍五入到最接近的整数。