浮動小数点ゼロ除算の 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 の数値定数の性質にあります。
数値定数の精度
Go の数値定数は任意の精度を持ち、オーバーフローしません。これは、無限大や -0 などの IEEE-754 値を表現できないことを意味します。
ゼロ除算
ゼロ除算は数学における未定義の演算であり、 IEEE-754 では無限大。ただし、Go の数値定数には無限大の表現がないため、コンパイラは、コード内で未定義の状況が発生するのを避けるために、ゼロによる除算をエラーとして扱います。計算に無限値が必要な場合は、 math.Inf 関数を使用できます。例:
以上がGo コンパイラが float をゼロで除算すると警告ではなくエラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。