我需要測試非有限浮點並消除它們。我刨使用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