Maison >développement back-end >Golang >Comment formater une valeur Go float64 en une chaîne de largeur fixe avec un maximum de chiffres significatifs ?
Comment convertir Float64 en une chaîne à largeur fixe avec un maximum de chiffres significatifs en Go
En Go, lors de l'impression de valeurs float64 dans un nombre fixe table de largeur, il est souvent souhaitable de conserver autant de chiffres significatifs que possible. Cependant, le formatage par défaut peut entraîner une perte de précision en raison du passage automatique à la notation scientifique pour les grands nombres.
La nécessité d'une solution de formatage personnalisée
Pour les cas où la notation scientifique et la forme régulière sont inacceptables, une approche de formatage personnalisée est requise. L'objectif principal doit être de calculer la précision optimale qui s'adapte à la largeur spécifiée tout en conservant le maximum de chiffres significatifs.
Solution proposée
La mise en œuvre suivante offre une solution simple :
<br>// format12 formate x pour qu'il comporte 12 caractères.<br>func format12(x float64) string {</p> <pre class="brush:php;toolbar:false">if x >= 1e12 { s := fmt.Sprintf("%.g", x) format := fmt.Sprintf("%%12.%dg", 12-len(s)) return fmt.Sprintf(format, x) } s := fmt.Sprintf("%.0f", x) if len(s) == 12 { return s } format := fmt.Sprintf("%%%d.%df", len(s), 12-len(s)-1) return fmt.Sprintf(format, x)
}
Cette solution utilise un processus en deux étapes :
Détermination de la précision :
Création du formatage Chaîne :
Exemples d'utilisation et de sortie
Pour démontrer sa fonctionnalité, considérons quelques exemples valeurs :
<br>fs := []float64{0, 1234.567890123, 0.1234567890123, 123456789012.0, 1234567890123.0,</p> <pre class="brush:php;toolbar:false">9.405090880450127e+9, 9.405090880450127e+19, 9.405090880450127e+119}
pour _, f := plage fs {
fmt.Println(format12(f))
}
Sortie :
<br>0,000 0000000<br>0.1234567890<br>1234.5678901<br>123456789012<br>1.234568e 12<br>9405090880.5<br>9.405091e 19<br>9.40509e 119<br>
Cette solution fournit le formatage à largeur fixe souhaité tout en préservant un maximum de chiffres significatifs, permettant un affichage clair et affichage concis des valeurs float64 dans divers scénarios.
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!