Maison >développement back-end >Golang >La division Golang conserve les décimales

La division Golang conserve les décimales

WBOY
WBOYoriginal
2023-05-11 11:38:363654parcourir

Dans Golang, vous devez faire attention à la façon dont les décimales sont conservées lors des opérations de division. Par défaut, golang arrondira automatiquement les décimales et le résultat sera infiniment proche au lieu d'être égal au résultat attendu. Dans certains scénarios qui nécessitent des calculs précis, tels que les systèmes financiers, la précision après la virgule doit être garantie, il est donc nécessaire de conserver les décimales.

Golang propose plusieurs méthodes pour mettre en œuvre des opérations de rétention décimale. Dans cet article, nous explorerons ces méthodes ainsi que leurs avantages et inconvénients.

Méthode 1 : Utilisez la fonction Printf du package fmt

Le package fmt est une méthode de sortie formatée fournie dans Golang. La fonction Printf peut utiliser une chaîne de format pour définir le format de la sortie, notamment en conservant le nombre de décimales. Voici un exemple :

package main

import (

"fmt"

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

fmt.Printf("%.2f", c)

}

Ce code affichera la valeur de c à deux décimales. C'est une méthode simple et rapide, mais elle n'enregistre pas le résultat dans une variable.

Méthode 2 : utilisez la fonction ParseFloat du package strconv

Le package strconv est un package de traitement de chaînes fourni dans Golang. La fonction ParseFloat peut convertir une chaîne en nombre à virgule flottante et spécifier le nombre de points décimaux. Voici un exemple :

package main

import (

"fmt"
"strconv"

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

f, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", c), 64)

fmt.Println(f)

}

Dans ce code, nous avons utilisé la fonction fmt.Sprintf pour formater la valeur de c à conserver chaîne à deux décimales, puis convertie en float à l'aide de la fonction strconv.ParseFloat. Cette méthode enregistre le résultat dans une variable, mais nécessite une étape de traitement supplémentaire pour formater le nombre à virgule flottante.

Méthode 3 : utilisez la fonction Round du package mathématique

La fonction Round est une fonction d'arrondi fournie dans Golang, qui peut arrondir les nombres à virgule flottante à un nombre spécifié de décimales. Voici un exemple :

package main

import (

"fmt"
"math"

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

f := math.Round(c*100) / 100

fmt.Println(f)

}

Dans ce code, nous utilisons la fonction math.Round pour arrondir la valeur de c à la décimale pointez deux chiffres puis divisez par 100 pour obtenir le résultat final. Cette méthode enregistre le résultat dans une variable et ne nécessite aucun formatage supplémentaire.

Résumé

Ci-dessus sont trois façons de conserver les décimales dans Golang. Ils ont chacun leurs propres avantages et inconvénients et doivent être sélectionnés en fonction des besoins réels lors de leur utilisation. Dans les scénarios impliquant des calculs financiers nécessitant de la précision, il est recommandé d'utiliser la méthode 2 et la méthode 3 pour garantir l'exactitude des résultats.

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