Maison  >  Article  >  développement back-end  >  Fonctionnement de la division Golang et son traitement des données de type float

Fonctionnement de la division Golang et son traitement des données de type float

PHPz
PHPzoriginal
2023-04-10 14:17:17929parcourir

Ces dernières années, le langage Go a continué à se développer et à se développer en tant que langage de programmation rapide et efficace. La division est l'une des opérations couramment utilisées en programmation, et différents langages l'implémentent différemment. Par conséquent, cet article présentera en détail l'opération de division dans Golang et son traitement des données de type float.

En golang, l'opérateur / peut être utilisé pour les opérations de division. Par exemple, a/b signifie a divisé par b. Mais il convient de noter que l’opération de division en golang produira des résultats différents selon le type d’opérandes. Plus précisément, lorsque les opérandes sont tous deux de type entier, le résultat du calcul est également de type entier et la partie décimale sera tronquée. Par exemple, le résultat de 7/3 sera 2 au lieu de 2,3333. Lorsqu'au moins un des opérandes est de type virgule flottante, le résultat du calcul sera également de type virgule flottante.

Afin de mieux comprendre l'opération de division en golang, nous pouvons la démontrer à travers l'exemple suivant :

package main

import (
    "fmt"
)

func main() {
    a := 7
    b := 3
    c := 7.0
    d := 3.0

    fmt.Println(a/b) // 输出2
    fmt.Println(c/d) // 输出2.3333333333333335
    fmt.Println(c/b) // 输出2.3333333333333335
    fmt.Println(a/d) // 输出2.3333333333333335
}

Grâce au code ci-dessus, nous pouvons voir :

  • Quand a et b sont tous deux des entiers, utilisez l'opérateur /Quand En effectuant une opération de division, le résultat du calcul est également un entier, la partie décimale sera tronquée et le résultat est 2.
  • Lorsque c et d sont tous deux de type à virgule flottante, utilisez l'opérateur / pour effectuer une opération de division, et le résultat du calcul est de type à virgule flottante, et le résultat est 2,3333333333333335.
  • Lorsque c est un type à virgule flottante et b est un type entier, utilisez l'opérateur / pour effectuer l'opération de division. Golang convertira automatiquement b en un type à virgule flottante et calculera le résultat comme un type à virgule flottante. Le résultat est 2,3333333333333335.
  • Lorsque a est un entier et d est un type à virgule flottante, utilisez l'opérateur / pour effectuer l'opération de division. Golang convertira automatiquement a en un type à virgule flottante et calculera le résultat comme un type à virgule flottante. Le résultat est 2,3333333333333335.

Les résultats dans les exemples ci-dessus sont relativement simples, mais dans le développement réel, nous devons parfois effectuer des calculs précis et arrondir ou arrondir les données. Pour cette situation, golang fournit la fonction Round et la fonction Trunc dans le package mathématique. Par exemple, cela peut être démontré avec le code suivant :

package main

import (
    "fmt"
    "math"
)

func main() {
    a := 7.0
    b := 3.0
    c := a/b

    fmt.Println(c)           // 输出2.3333333333333335
    fmt.Println(math.Round(c)) // 输出2
    fmt.Println(math.Trunc(c)) // 输出2
}

Grâce au code ci-dessus, nous pouvons voir qu'en utilisant la fonction math.Round, c peut être arrondi à un entier, le résultat est 2 en utilisant la fonction math.Trunc ; , c peut être tronqué en un entier, le résultat est également 2.

En résumé, l'opération de division en golang produira des résultats différents selon le type d'opérandes. Lorsqu'au moins un des opérandes est de type virgule flottante, le résultat du calcul sera également de type virgule flottante. Si vous devez effectuer des calculs précis, vous pouvez utiliser les fonctions Round et Trunc du package mathématique pour les opérations d'arrondi et d'arrondi. La maîtrise des connaissances sur les opérations de division en Golang sera utile pour les futurs travaux de programmation.

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