Maison >développement back-end >Golang >Pourquoi la division par zéro dans Go entraîne-t-elle une erreur du compilateur ?
Division par zéro en Go : erreur du compilateur ou avertissement
En Go, tenter de diviser un nombre à virgule flottante par zéro entraîne une erreur de compilation, comme le montre l'exemple ci-dessous :
<code class="go">func main() { var y float64 = 0.0 var x float64 = 4.0 / y fmt.Println(x) }</code>
Sortie :
prog.go:9:22: division by zero
Cette erreur se produit car les constantes numériques dans Go sont exactes et ne correspondent pas directement à un flottant IEEE754 taper. Par conséquent, ils ne peuvent pas stocker des infinis ou des zéros négatifs.
Selon la documentation, "Les constantes numériques représentent des valeurs exactes de précision arbitraire et ne débordent pas. Par conséquent, il n'y a pas de constantes désignant le zéro négatif IEEE-754 , l'infini et les valeurs non numériques."
Ce choix offre certains avantages, tels que la réduction du débordement des constantes, comme démontré ci-dessous :
<code class="go">var x float64 = 1e1000 / 1e999 // yes, this is 10</code>
Si vous avez besoin d'une valeur infinie , vous pouvez utiliser le code suivant :
<code class="go">var x float64 = math.Inf(1)</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!