提问人: 提问时间:7/15/2018 更新时间:7/15/2018 访问量:734
使用等于运算符检查无穷大是否有效?
Is it valid check for infinity with the equals operator?
问:
答:、等。Double.IsInfinity
Double.IsPosiviteInfinity
所以现在我的问题是:简单地做:
double d = Double.PositiveInfinity;
if(d == Double.PositiveInfinity)
{
//
}
它似乎正在工作,但是!如果事情这么简单,为什么上述问题的答案会推荐呢?为什么要提供这种方法?Double.IsPositiveInfinity
这让我想知道通过运算符检查无穷大是否有任何警告......有吗?==
答:
0赞
Flydog57
7/15/2018
#1
这些东西是方法,而不是属性(https://msdn.microsoft.com/en-us/library/system.double.ispositiveinfinity(v=vs.110).aspx )。据我所知,您应该像以下方式使用它们:
if (double.IsPositiveInfinity(d)) { }
评论
0赞
Flydog57
7/17/2018
哎呀,我搞砸了。我看到你的并把它读成 ,这是我检查这种值的唯一方法。我一直使用这些方法的原因与 @mike Z 指出的原因大致相同:“因为比较浮点数以获得精确相等是一种反模式”Double.PositiveInfinity
double.IsPositiveInfinity()
评论