c# - 如何处理小数

时间:2017-02-21 09:10:47

标签: c# database winforms numericupdown

我有一个numericUpDown并将属性的小数位数设置为3,因此它变为0.000

这是代码

Decimal inputGrossWeight = numGrossWeight.Value;

if (inputGrossWeight = 0.000)
{
    MessageBox.Show("Gross Weight must be filled!");
}
else 
{
   Data newData = new Data();
   newData.grossWeight = inputGrossWeight;
}

注意:

  • numGrossWeight是numericUpDown的名称

  • grossWeight是我数据库中的列名

并将其存储到数据库类型为float

的数据库中

因此,当用户输入2.365时,它也将存储到数据库2.365中。

我尝试过多种方法,它给了我错误:

  

无法将类型'decimal'隐式转换为'double'。一个明确的   存在转换(你错过了演员吗?)

     

double类型的文字不能隐式转换为类型   “十进制”;使用'M'后缀来创建此类型的文字

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:4)

您正尝试在if声明中进行分配。

试试这个

if (inputGrossWeight == 0m)

正如Jon Skeet在评论中提到的那样,通过添加m,您确保使用decimal字面值,从而比较苹果和苹果。