【发布时间】:2019-07-01 18:16:52
【问题描述】:
net,我正在尝试验证属性的值是否为 NaN 但它给了我'不能转换双倍?为以下代码加倍'这个错误,但如果我删除'?在模型中,所有方法都可以正常工作 你能帮忙看看如何验证双重身份吗?是否为 NaN。
public class abcDTO
{
public double? CondPot { get; set; }
public double? WaterPot { get; set; }
public double? WaterInjPot { get; set; }
}
-------
public async Task<abcDTO> UpdateWellDeferment(abcDTO abc)
{
if (HasValue(abc.CondPot))
throw new ArgumentException($"CondPot is not a valid number");
.....
}
public static bool HasValue(double val)
{
return Double.IsNaN(val);
}
【问题讨论】:
-
您不想知道数据库中的值是否为
NULL吗?那么如果abc.CondPot == null? -
将其更改为
HasValue(double? val)并检查return val.HasValue && !Double.IsNaN(val.Value)(我想这是正确的逻辑) -
将你的 if
HasValue()函数转换为double?(又名Nullable<double>),然后检查它是否内置于HasValue属性(docs.microsoft.com/en-us/dotnet/api/…)以及它的 Not-A-数量性 -
为什么要查
IsNaN? (你可以用一个双零除以零)
标签: c# entity-framework