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

Comment puis-je vérifier si un Go float64 représente un nombre entier ?

Susan Sarandon
Libérer: 2024-12-27 15:13:11
original
685 Les gens l'ont consulté

How Can I Check if a Go float64 Represents a Whole Number?

Détermination de valeurs entières à partir de nombres à virgule flottante dans Go

Dans Go, déterminer si un float64 représente un nombre entier peut poser un défi. L'opérateur modulo (%) ne peut pas être utilisé directement sur les flottants.

Solution 1 : Comparer Float64 avec un équivalent entier

Si vos nombres peuvent tenir dans un int64, pensez à comparer le float avec sa valeur entière convertie :

if a == float64(int64(a)) { ... }
Copier après la connexion

Solution 2 : Utiliser math.Trunc

Pour l'ensemble du domaine float64, vous pouvez utiliser la fonction math.Trunc :

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

Par exemple :

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

Ce code affiche correctement "yay" lorsque a est défini sur 2,00, indiquant qu'il s'agit d'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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal