c# - 如何处理小数
c# - How to deal with decimal
我有一个 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。
我试过很多方法,但都出现错误:
Cannot implicitly convert type 'decimal' to 'double'. An explicit
conversion exists (are you missing a cast?)
Literal of type double cannot be implicitly converted to type
'decimal'; use an 'M' suffix to create a literal of this type
我的代码有什么问题?
您正在尝试在 if
语句中赋值。
不如试试这个
if (inputGrossWeight == 0m)
正如 Jon Skeet 在他的评论中提到的,通过添加 m
,您可以确保您使用的是 decimal
字面量,从而将苹果与苹果进行比较。
我有一个 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。
我试过很多方法,但都出现错误:
Cannot implicitly convert type 'decimal' to 'double'. An explicit conversion exists (are you missing a cast?)
Literal of type double cannot be implicitly converted to type 'decimal'; use an 'M' suffix to create a literal of this type
我的代码有什么问题?
您正在尝试在 if
语句中赋值。
不如试试这个
if (inputGrossWeight == 0m)
正如 Jon Skeet 在他的评论中提到的,通过添加 m
,您可以确保您使用的是 decimal
字面量,从而将苹果与苹果进行比较。