Vb.net 测试单个值是否等于零的正确方法

Vb.net 测试单个值是否等于零的正确方法,vb.net,resharper,Vb.net,Resharper,以下代码行对Resharper发出警告:“使用相等运算符比较浮点数。”。舍入值时可能会丢失精度。” Dim samples() As Single If samples(i) = Nothing Then samples(i) = _mPreviousSamples(i) End If 检查值是否存在的最佳方法是什么 检查值是否存在的最佳方法是什么 我认为您对于诸如Single之类的值类型有错误的概念“Nothing”。对于值类型,Nothing更正确地解释为该类型的默认值:对于单个

以下代码行对Resharper发出警告:“使用相等运算符比较浮点数。”。舍入值时可能会丢失精度。”

Dim samples() As Single

If samples(i) = Nothing Then
    samples(i) = _mPreviousSamples(i)
End If
检查值是否存在的最佳方法是什么

检查值是否存在的最佳方法是什么

我认为您对于诸如Single之类的值类型有错误的概念“
Nothing
”。对于值类型,
Nothing
更正确地解释为该类型的默认值:对于单个值,为0.0

如果您想知道某个值是否与某个值类型一起存在,则需要首先初始化该值类型以保存在此上下文中不可能存在的值。对于诸如Single之类的基本类型,
什么都不好。对于Single,请尝试使用,并使用检查值

检查值是否存在的最佳方法是什么

我认为您对于诸如Single之类的值类型有错误的概念“
Nothing
”。对于值类型,
Nothing
更正确地解释为该类型的默认值:对于单个值,为0.0


如果您想知道某个值是否与某个值类型一起存在,则需要首先初始化该值类型以保存在此上下文中不可能存在的值。对于诸如Single之类的基本类型,
什么都不好。在Single的情况下,尝试使用,并使用检查值

我不太了解VB.NET,但在C中,我会做一些类似于
float的事情?样本=空


你能把它声明为一个像Dim s as System.nullable(Of Single)=Nothing
一样的可空值吗?

我对VB.NET不是很了解,但在C中,我会做一些类似于
float的事情?样本=空

Dim samples As System.Nullable(Of Single) = Nothing
If samples.HasValue Then
    Console.WriteLine(samples.Value)
Else
    Console.WriteLine("samples is Nothing")
End If
你能把它声明为一个可以为null的系统吗

Dim samples As System.Nullable(Of Single) = Nothing
If samples.HasValue Then
    Console.WriteLine(samples.Value)
Else
    Console.WriteLine("samples is Nothing")
End If
编辑:精度: 在大多数情况下,您可以像使用
单曲一样使用
可空(Of Single)
。在适当的情况下,VB会自动将其转换为
单个
。如果没有,只需使用上例中的
属性即可。你也可以用问号写
Single?
,而不是
Nullable(指Single)
。除了测试
samples.HasValue
属性,还可以测试
samples is not Nothing

Dim samples As Single? = Nothing
If samples Is Nothing Then
    Console.WriteLine("samples is Nothing")
Else
    Console.WriteLine(samples)
End If
编辑:精度: 在大多数情况下,您可以像使用
单曲一样使用
可空(Of Single)
。在适当的情况下,VB会自动将其转换为
单个
。如果没有,只需使用上例中的
属性即可。你也可以用问号写
Single?
,而不是
Nullable(指Single)
。除了测试
samples.HasValue
属性,还可以测试
samples is not Nothing

Dim samples As Single? = Nothing
If samples Is Nothing Then
    Console.WriteLine("samples is Nothing")
Else
    Console.WriteLine(samples)
End If

可能您应该查找类似于
double.IsNaN(…)
的内容可能您应该查找类似于
double.IsNaN(…)