数据类型双截断精度

时间:2014-02-24 11:53:14

标签: c# double-precision

我在数据库中存储的值为0.05和0.10。我正在使用c#代码创建一个列表,使用以下命令在列表中获取这些值:

foreach (var objST in obj.LstTerms)
{
     SubcriptionTermsModel objSubcriptionTerms = new SubcriptionTermsModel();
     objSubcriptionTerms.DiscountRate = objST.DiscountRate;
}

其中DiscountRate的类型为double。 但是在创建列表时,值 0.10 会被截断为 0.1 ,我无法在我的视图中进行比较。 请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

正如所讨论的here

  

double不会保持无关紧要的数字 - 就双倍而言,1.5和1.50000之间没有区别。

     

如果要保留无效数字,请改用小数。无论如何,它可能更适合您,具体取决于您的具体情况。 (我们在这里只有很少的背景......)

因此,您可以使用此decimal代替double