C#中的小数舍入

维克多·奥利维拉(Victor Oliveira)

我有从数据库中获取信息以插入列表的代码。我要获取的一项数据将用作价格。(我在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);
}
圆胡子

如果将一列声明为decimal,则默认的“小数位数”为零。您需要指定精度和小数位数

试试这个例子

declare @d1 decimal = 1.80
declare @d2 decimal(19,4) = 1.80

select @d1, @d2;

结果:

2        1.8000

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章