Maison >développement back-end >Golang >Pourquoi la division par zéro dans Go entraîne-t-elle une erreur du compilateur ?

Pourquoi la division par zéro dans Go entraîne-t-elle une erreur du compilateur ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 03:00:30320parcourir

Why Does Division by Zero in Go Result in a Compiler Error?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn