Le langage Go est un langage de programmation relativement jeune En raison de sa simplicité, de son efficacité et de sa sécurité, il est de plus en plus populaire parmi les programmeurs et est largement utilisé dans les applications Web, la programmation réseau, le cloud computing, le big data et d'autres domaines. Dans le langage Go, les données de type float sont souvent utilisées pour représenter des décimales et des valeurs à virgule flottante. Lorsque nous devons convertir des données de type float en type chaîne, nous devons utiliser certaines fonctions associées.
Signature de fonction : func FormatFloat(f float64, fmt byte, prec, bitSize int) string
Parmi eux, le paramètre f est le nombre à virgule flottante à convertir, fmt représente le format de conversion, 'f' représente la représentation décimale , 'e' représente la notation scientifique, 'E' représente la notation scientifique, prec représente la précision après la virgule décimale et bitSize représente le nombre de chiffres dans le type numérique (32 ou 64 bits).
Exemple de code :
package main
import "fmt"
import "strconv"
func main() {
num := 3.141592654 str := strconv.FormatFloat(num, 'f', 2, 64) fmt.Println("转换后的字符串为:", str)
}
Sortie :
La chaîne convertie est : 3.14
Dans cet exemple, nous convertissez le nombre à virgule flottante 3.141592654 en une chaîne avec une précision de 2 et affichez le résultat. Le résultat de sortie à ce moment est 3,14.
Exemple de code :
package main
import "fmt"
func main() {
num := 1.61803398875 str := fmt.Sprintf("%f", num) fmt.Println(str)
}
Sortie :
1.618034
Dans cet exemple, nous utiliserons fmt pour les nombres à virgule flottante. Le La fonction Sprintf se convertit en type chaîne et génère le résultat. Le résultat est le même que le format par défaut des valeurs float64.
Le type []byte renvoyé est utilisé comme prochaine position à remplir de w. Pour éviter l'allocation de mémoire, appelez w.Grow(n) à l'avance, où n est le nombre total d'octets à écrire ou la largeur maximale du nombre + 1 (c'est-à-dire la combinaison de la largeur totale du nombre avec un bon alignement et l'ajout d'un point décimal )
w est une instance qui implémente io.Writer. La représentation sous forme de chaîne de
fn est basée sur le format fmt, avec un nombre précis de décimales (-1 signifie utiliser le moins de chiffres). En particulier, les descripteurs de format suivants %v et %e donnent tous deux ici une notation scientifique. Le plus petit nombre garanti réversible par une constante à virgule flottante peut être obtenu en utilisant Float32bits (-1<<31) et Float64bits (-1<<63).
Le comportement non numérique des valeurs f est exactement le même que celui de fmt.Fprintf.
Exemple de code :
package main
import "strconv"
func main() {
num := 3.141592653 b := make([]byte, 0, 64) b = strconv.AppendFloat(b, num, 'f', -1, 64)
}
Dans cet exemple, nous convertissons le nombre à virgule flottante 3.141592653 en un type de chaîne et le stockons dans b [] variable de type octet. Il convient de noter que le nombre de décimales à ce moment est -1, c'est-à-dire que le nombre minimum de chiffres est utilisé pour représenter la valeur.
Si vous souhaitez contrôler avec précision l'algorithme float-to-string, vous pouvez en apprendre davantage sur la bibliothèque standard Golang math/big.
Résumé :
Dans le langage Go, il existe trois manières principales de convertir des données de type float en données de type chaîne : en utilisant la fonction fmt.FormatFloat dans le package strconv, en utilisant la fonction fmt.Sprintf et en utilisant strconv.FormatFloat() et strconv.AppendFloat() est utilisé en combinaison. Vous pouvez utiliser les fonctions du package strconv pour personnaliser le formatage. L'utilisation de la fonction fmt.Sprintf est pratique et simple. L'utilisation de strconv.FormatFloat() en combinaison avec strconv.AppendFloat() peut réduire les opérations de copie et d'ajout de chaînes et améliorer la vitesse de traitement des chaînes. . Il convient de noter que lors du calcul et de l'utilisation de précision, il convient de veiller à éviter les erreurs causées par la conversion de nombres à virgule flottante, en particulier les nombres à virgule flottante avec une plage plus large.
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!