Erreur du compilateur pour la division zéro dans les opérations à virgule flottante Go
Lorsque vous tentez d'effectuer une division par zéro à l'aide de variables float64 dans Go, le compilateur renvoie une erreur plutôt que d'émettre un avertissement. Ce comportement peut sembler contre-intuitif, car on pourrait s'attendre à ce qu'un avertissement soit plus approprié dans de telles situations.
Considérez les exemples suivants :
<code class="go">func main() { var y float64 = 0.0 var x float64 = 4.0 / y fmt.Println(x) }</code>
Cet extrait de code génère la sortie Inf, indiquant que le résultat est l'infini positif.
Cependant, si nous modifions le code pour diviser explicitement par 0,0, le compilateur génère une erreur :
<code class="go">func main() { var x float64 = 4.0 / 0.0 fmt.Println(x) }</code>
Le message d'erreur est : prog.go : 9h22 : division par zéro.
Comprendre le comportement
Les constantes numériques Golang, y compris celles à virgule flottante, ont des propriétés spéciales et ne sont pas directement mappées au flotteur IEEE754 genres. Contrairement à ces types, les constantes Go ne peuvent pas représenter l'infini ou le zéro négatif.
Selon la documentation Go :
"Les constantes numériques représentent des valeurs exactes d'une précision arbitraire et ne débordent pas. Par conséquent, il n'y a pas constantes désignant les valeurs négatives IEEE-754 zéro, infini et non-nombre. vous avez besoin d'une valeur infinie, vous pouvez utiliser la fonction math.Inf :
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!