Go でのゼロ除算: コンパイラ エラーと警告
Go では、浮動小数点数をゼロで除算しようとすると、次のような結果が得られます。以下の例に示すコンパイラ エラー:
<code class="go">func main() { var y float64 = 0.0 var x float64 = 4.0 / y fmt.Println(x) }</code>
出力:
prog.go:9:22: division by zero
このエラーは、Go の数値定数が正確であり、IEEE754 float に直接マップされないために発生します。タイプ。その結果、無限大や負のゼロを格納できません。
ドキュメントによると、「数値定数は任意の精度の正確な値を表し、オーバーフローしません。したがって、IEEE-754 の負のゼロを表す定数はありません」
この選択には、以下に示すように、定数のオーバーフローを減らすなどのいくつかの利点があります。
<code class="go">var x float64 = 1e1000 / 1e999 // yes, this is 10</code>
無限値が必要な場合、次のコードを使用できます:
<code class="go">var x float64 = math.Inf(1)</code>
以上がGo でゼロ除算を行うとコンパイラ エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。