vérifier si un nombre est de type int ou float
En perl, je veux vérifier si la variable contient un nombre à virgule flottante de pas. Pour vérifier cela, je suis en utilisant,
my $Var = 0.02 # Floating point number
if (int($Var) != $Var) {
# floating point number
}
Mais le code ci-dessus ne fonctionne pas pour les 0.0,
Comment puis-je y parvenir?
Quelle était la bonne réponse à votre question dépend entièrement de pourquoi vous voulez savoir. Qu'allez-vous faire de différent pour un nombre à virgule flottante?
OriginalL'auteur Alphaneo | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
C'est une FAQ. Voir Comment puis-je déterminer si un scalaire est un nombre/entier/entier/float?
Vous pouvez également utiliser Scalar::Util::Numeric.
Fait intéressant, alors que
imprime
int
(pas surprenant si vous regardez le code source), basé sur @tchrist commentaire, il devrait être possible d'examiner les informations fournies dans les variables de la structure de distinguer0
de0.0
:De sortie:
Il me semble que le chèque devra il suffit de regarder si le
NOK
drapeau est réglé. Il me prend les âges à écrire, même le plus simple XS donc je ne vais pas fournir une implémentation.Avec la glibc, en fonction des systèmes, vous pouvez distinguer:
$x eq -$x ? 'IV' : 'NV'
OriginalL'auteur Sinan Ünür
$Var
est en réalité numérique.OriginalL'auteur Alex
Vous pouvez utiliser autobox::module universel qui est la partie de autobox.
De sortie:
OriginalL'auteur cono