La documentation des champs de formatage de fmt.Printf pour les valeurs à virgule flottante indique que :
"Pour les valeurs à virgule flottante, la largeur définit la largeur minimale du field
et la précision définit le nombre de décimales après la virgule, si
approprié, sauf que pour %g/%G, il définit le nombre total de chiffres."
La partie déroutante réside dans le utilisation de "ça" dans la dernière phrase. Il fait en fait référence à la « précision », et non à la « largeur ».
Contrairement à l'intuition selon laquelle %.9g devrait produire un total de 9 chiffres significatifs, il ne considère en fait que les chiffres après la virgule décimale.
Par exemple, 123456.789 sera formaté en 123.4e 03 car %.9g tronque efficacement tous les zéros non significatifs.
À l'inverse, 0.0000012345 sera formaté en 1.2345e-06 car %.9g prend en compte tous les chiffres significatifs après la virgule décimale.
Le champ largeur spécifie la largeur minimale de l'intégralité de la chaîne formatée, y compris le point décimal et exposant (le cas échéant).
Le champ de précision, comme décrit ci-dessus, définit le nombre de chiffres significatifs après le point décimal.
Pour %g, le champ de précision remplace la largeur champ. Cependant, si la chaîne formatée dépasse la largeur spécifiée, elle s'étendra au-delà de la largeur spécifiée.
Rappelez-vous que l'exemple implique le formatage des valeurs à virgule flottante suivantes à l'aide .9g :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3