Maison >développement back-end >Golang >chaîne flottante golang

chaîne flottante golang

WBOY
WBOYoriginal
2023-05-10 20:38:353184parcourir

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.

  1. La fonction Float64Tostring dans le package strconv
    Dans le langage Go, vous pouvez utiliser la fonction "FormatFloat" du package "strconv" pour convertir un nombre réel à virgule flottante de 64 bits en chaîne, et vous pouvez également spécifier le format de conversion, tel que la conservation de n chiffres après la virgule décimale, la notation exponentielle, etc.

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.

  1. Utilisez directement la fonction fmt.Sprintf
    Lors de l'écriture du code, nous pouvons également utiliser la fonction fmt.Sprintf pour convertir un type float en type chaîne. L'espace réservé %f est utilisé dans la chaîne de format de cette fonction pour représenter la sortie des données de type float.

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.

  1. strconv.FormatFloat() est utilisé en combinaison avec strconv.AppendFloat()
    Si vous devez convertir le type float64 en type chaîne, vous devez prendre en compte le stockage de la chaîne afin d'améliorer la vitesse de traitement de. la chaîne, vous pouvez utiliser strconv .AppendFloat() évite certaines opérations de copie et d'ajout de chaîne. Une certaine compréhension est requise ici :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn