我的代码是从数据库中获取信息以插入列表。我将使用的一条数据用于定价。 (我在SQL Server中将其类型设置为十进制),例如:" 1,80"
但是当我选择它时,我的十进制变量返回值2!
我想知道是否有一种简单的方法可以使十进制不自动舍入数字。
这是代码:
public decimal preco { get; set; }
while (dr.Read())
{
clsCaProd oProd = new clsCaProd();
oProd.cod = dr.GetInt32(0);
oProd.preco = dr.GetDecimal(1); // Here returns "2" instead of "1,80"
oProd.info = dr.GetString(2);
oProd.categ = dr.GetString(3);
oProd.nome = dr.GetString(4);
lProd.Add(oProd);
}
答案 0 :(得分:0)
如果您将列声明为decimal
,则默认为"比例"是零。您需要指定precision and scale。
尝试this example:
declare @d1 decimal = 1.80
declare @d2 decimal(19,4) = 1.80
select @d1, @d2;
结果:
2 1.8000