插入带小数字段的记录 - 剪切所有小数

时间:2013-11-16 08:00:07

标签: c# sql decimal rounding

我使用Linq2Sql将一个简单的对象插入到数据库中(是的,是的,我很快就会更改为EF)。

此对象具有小数值。当我调试时,我可以看到价格的价值是6.8。

但是,当我插入数据库时​​,值为7.字段的数据类型为decimal(18, 0)

如果它有帮助,我认为这是因为我在丹麦的电脑上,并且圆角字符是“,”而不是“。”。

我的插入代码

var order = new PlacedOrder()
{
    DateCreated = DateTime.Now,
    UserId = userid,
    PaymentInfo = paymentInfoId,
    ShippingInfo = shippingInfoId,
    OrderState =orderState.ToString(),
    PaymentMethod = paymentMethod.ToString(),
    Email = email,
    Phone = phone,
    PdfFilePath = pdfPath,
    Price = price,
    PriceVat = vat
};

db.PlacedOrders.InsertOnSubmit(order);
db.SubmitChanges();

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

将数据类型从decimal(18, 0)更改为decimal(18, 2),以存储最多2个小数位的值,或者{n {3}},用于n个精度,带有m个小数点。

由于当前数据类型为decimal(18, 0),因此小数值不会存储在DB中。