IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Tester si un nombre est un entier ou un décimal


Sujet :

ASP

  1. #1
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut Tester si un nombre est un entier ou un décimal
    Bonjour à tous,
    Voila j'aimerais savoir s'il était possible de tester si un nombre est entier ou décimal. J'ai cherché un peu partout sur le net mais je n'ai pas trouvé de fonction "directe".
    Ou alors tout simplement traiter le nombre (qui est une chaine de caracteres) et tester si il contient une virgule...
    Merci pour votre aide!
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par sab_etudianteBTS
    Ou alors tout simplement traiter le nombre (qui est une chaine de caracteres) et tester si il contient une virgule...
    Merci pour votre aide!
    possible avec la fonction instr(chaine, "caractere a trouver") apparemment si =0, alors pas de virgule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = "23"
    response.write instr(str, ",")
    renvoie 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = "1,223"
    response.write instr(str, ",")
    renvoie 2

  3. #3
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Ok, nickel c ca!!
    Merci bcp Alex35!!
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    pas de p

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Il faut tout de même faire attention au fait qu'en anglais les virgules sont des points.
    De plus, est-ce que "1,00" est un nombre décimal? Oui et non.
    Pour en être certain, je verifierais que le nombre en question soustrait de sa partie entière est différent de 0. Sachant qu'un décimal peut être aussi négatif !

    Allez on se creuse les méninges.

    Bon allez, voici une petite idée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function IsDecimal(byval str)
    	str = replace(str, ",",".")
    	if isnumeric(str) then
    		str = abs(str)
    		FOR i = 1 to len(str)
    			if not isnumeric(mid(str, i, 1)) then EXIT FOR
    		NEXT
    		response.Write("La partie entière de " & str & " est : " & mid(str, 1, i - 1) & "<br>")
    		response.Write("Le resultat de " & str & " - " & mid(str, 1, i - 1) & " = " & str - mid(str, 1, i - 1) & "<br>")
    		IsDecimal = eval(abs(str - mid(str, 1, i - 1)) > 0)
    	else
    		IsDecimal = false
    	end if
    End function
     
    str = "-4000000,98765345"
    if IsDecimal(str) then response.Write(str & " est bien un nombre décimal!!") else response.Write("Oups, on dirait que " & str & " n'est pas un nombre décimal.<br>")
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    effectivement, mais je ne fais que repondre a la question posée...
    Apres on peut evidemment apporter des modifications, que dis je des meliorations!!
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sql ] Tester si un nombre est négatif
    Par tibyann dans le forum Oracle
    Réponses: 7
    Dernier message: 12/03/2009, 10h06
  2. comment tester si un nombre est premier en php ?
    Par Shyboy dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 17h08
  3. [VB6] Un nombre est il entier
    Par jerzy59 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2006, 16h10
  4. [Math]Tester si un nombre est un entier positif
    Par billy67 dans le forum Général Java
    Réponses: 9
    Dernier message: 28/12/2005, 09h14
  5. [XSL] Tester si la valeur est un entier dans un xml
    Par MrMaze dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/07/2003, 04h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo