Division en Go : Comprendre le mystère 0.3
Lorsque vous effectuez une opération de division en Go, vous pouvez rencontrer un résultat inattendu de 0 au lieu de le 0,3 attendu. Ce comportement particulier est dû à l'utilisation de constantes non typées dans l'opération.
En Go, les opérandes des opérations binaires sont initialement traitées comme des constantes non typées. Le type d'opération résultant est déterminé par les opérandes en utilisant un ordre de priorité spécifique. Pour les constantes entières comme 3 et 10, le résultat est un entier non typé, donc 0.
Pour obtenir un résultat à virgule flottante, il faut s'assurer qu'au moins un opérande est une constante à virgule flottante. En utilisant une conversion de type explicite, comme le montrent les expressions ci-dessous, vous pouvez obtenir la précision souhaitée :
Vous pouvez également convertir les opérandes entiers en float64 explicitement :
Ces modifications forcent l'opération à utiliser l'arithmétique à virgule flottante, donnant le résultat escompté de 0,3.
Par conséquent, lors de l'exécution d'opérations arithmétiques dans Allez, soyez attentif au type de constantes utilisées. Pour éviter ce problème spécifique de division, assurez-vous que vos opérandes sont soit des constantes à virgule flottante explicites, soit qu'ils subissent une conversion de type explicite en float64.
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!