Maison > développement back-end > Golang > Comment vérifier efficacement si un Go Float64 représente un nombre entier ?

Comment vérifier efficacement si un Go Float64 représente un nombre entier ?

DDD
Libérer: 2024-12-17 14:37:29
original
489 Les gens l'ont consulté

How to Efficiently Check if a Go Float64 Represents a Whole Number?

Test de l'égalité des nombres flottants dans Go

Lorsque vous travaillez avec des nombres à virgule flottante dans Go, il peut être nécessaire de déterminer si un nombre donné la valeur float représente un nombre entier. Bien que tenter d'utiliser l'opérateur modulo (%) puisse sembler une approche simple, il est important de noter que cet opérateur n'est pas défini pour les valeurs float64.

Utilisation de la conversion entière

Une approche pour tester l'égalité flottante des nombres entiers consiste à comparer la valeur flottante à une valeur entière convertie. Si la valeur flottante et la valeur entière convertie sont égales, alors le flottant est considéré comme un nombre entier. Ceci peut être réalisé en utilisant la syntaxe suivante :

if a == float64(int64(a)) {
    // a is a whole number
}
Copier après la connexion

Utilisation de la fonction math.Trunc

Pour les cas où la valeur float peut dépasser la plage d'un int64, une approche alternative consiste à utiliser la fonction math.Trunc. Cette fonction tronque la partie fractionnaire d'un nombre flottant, renvoyant une valeur entière. En comparant la valeur flottante d'origine à sa valeur tronquée, il est possible de déterminer si le flottant est un nombre entier :

if a == math.Trunc(a) {
    // a is a whole number
}
Copier après la connexion

Exemple

Le code Go suivant démontre l'utilisation de la fonction math.Trunc pour déterminer correctement si une valeur flottante représente un nombre entier :

package main

import (
    "fmt"
    "math"
)

func main() {
    var a float64 = 2.00
    if a == math.Trunc(a) {
        fmt.Println("yay")
    } else {
        fmt.Println("you fail")
    }
}
Copier après la connexion

Dans cet exemple, la valeur flottante 2,00 est testé et le résultat sera "oui" puisque 2,00 est un nombre entier.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal