我需要测试非有限浮点并消除它们。我刨使用math.IsInf()
测试花车,但我已经看到了使用math.IsNaN()
为此,一些脂肪酶。这其中的一个比另一个更好吗?如果是的话,为什么?哪个更适合测试非有限花车IsNaN或IsInf?
编辑:这已被搁置,因为它是不明所以在这里,希望能澄清问题的更多信息。我正在从“The Go Programming Language”开始练习3.1,它参考了这个program。这次演习它要求
如果函数f返回非有限float64值,SVG文件>包含无效元素(尽管许多SVG渲染处理>这正常)。修改程序跳过无效的多边形。
我刨通过将以下的角落FUNC
if math.IsInf(z, 0) {
return math.NaN(), math.NaN()
}
和改变第二的内容在主循环
ax, ay := corner(i+1, j)
if math.IsNaN(ax) {
continue
}
bx, by := corner(i, j)
if math.IsNaN(bx) {
continue
}
cx, cy := corner(i, j+1)
if math.IsNaN(cx) {
continue
}
dx, dy := corner(i+1, j+1)
if math.IsNaN(dx) {
continue
}
fmt.Printf("<polygon points='%g,%g %g,%g %g,%g %g,%g'/>\n",
ax, ay, bx, by, cx, cy, dx, dy)
我想检查来解决这个问题我的工作,所以我决定查找其他人在网上发布的其他问题。没有其他人,我发现曾使用过那里的解决方案math.IsInf()
但大部分人都使用math.IsNaN()
。这让我想知道我是否错过了某些东西,并且math.IsNaN()
由于某种原因更适合此目的。所以我通过Go Docs浏览了这两种功能。我抬头楠维基百科和IEEE 754.我做了,为什么其他人使用math.IsNaN()
一般的网页搜索,即使在我看来不太直观。然后我在这里和在stackoverflow搜索答案后,我没有真正有答案,所以我决定发布一个问题。
你知道什么是浮点无穷大和NaN的是谁? – user2357112
@ user2347112 - 据我了解,NaN的意思不是一个数字,并表示对0/0这样的事物的反应,一个负数或无穷大的数字。无限可以是任何数字,以浮点形式表示。至少这是我的研究让我相信至今为止。 – sjtwiv
IsInf测试正或负无穷。 IsNaN测试NaN。如果您需要这些测试中的一个或两个,请使用您需要的一个或多个功能。 – user2357112