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 :

Gestion des grands nombres en ASP


Sujet :

ASP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Gestion des grands nombres en ASP
    Bonjour à tous,

    je m'arrache les cheveux depuis plusieurs heures pour contourner ce problème mais en vain.

    J'espère que l'un d'entre vous aura la réponse.

    Je cherche une façon en ASP d'afficher intégralement le résultat d'un calcul.

    En effet, au-delà de 10^15, le résultat s'affiche en puissance or j'ai besoin de tous les chiffres dans mes calculs pour des nombres atteignant au moins 10^32.

    Merci par avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Comment affiches-tu la donnée ? Dans un label et tu fais label.Text = monNumeric.ToString() ?

    Si tel est le cas, je pense que cela vient de la culture, et dans ce cas, il faut que tu définisses le format avec un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label.Text = monNumeric.ToString("## ### ### ### ### ### ### ### ### ### ###")
    Il y a sans doute mieux pour définir le format !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par junioricus Voir le message
    En effet, au-delà de 10^15, le résultat s'affiche en puissance or j'ai besoin de tous les chiffres dans mes calculs pour des nombres atteignant au moins 10^32.
    De quel type numérique s'agit-il pour commencer ?

    Par ailleurs, si je veux bien comprendre que tu ais besoin de "tous les chiffres dans (tes) calculs ", je ne vois pas le rapport avec l'affichage. (a priori on ne réutilise pas la valeur affichée dans un calcul , mais la valeur stockée).

    Bref, la demande est confuse.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut code
    Bonjour,

    tout d'abord excusez ma réponse tardive, je n'avais pas activé la notification par email.

    Pour vous aider à comprendre mon problème, voici mon code pourtant très simple :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Dim cValeur, cValeur2, dist, j, numb, k, add
     
    cValeur="999999"
    cValeur2=0
     
    dist=Len(cValeur)
     
    For j=1 to dist
    	numb=Mid(cValeur,j,1)
    	Select Case j
    		Case 1
    			cValeur2=cValeur2+numb+2
    		Case 2
    			cValeur2=cValeur2+numb+4
    		Case 3
    			cValeur2=cValeur2+numb+9
    		Case 4
    			cValeur2=cValeur2+numb+7
    		Case 5
    			cValeur2=cValeur2+numb+6
    		Case 6
    			add=cValeur2
    			response.write(cValeur2 & "<br>")
    			for k=2 to (numb+8)
    				cValeur2=cValeur2*add
    				response.write(cValeur2 & "<br>")
    			next
    	End Select
    Next

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Mais pourquoi tu ne type pas tes variables ? a fortiori si tu veux manipuler du numérique.

    On dirait du vbscript ton truc !

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    1) Même remarque que BlueDeep.

    2) Suis pas un expert en VB, mais à priori, suivant la version de VB.NET, le Dim "anonyme" est interpreté soit comme un "object", soit comme un type implicite (equivalent de var en C#). ca change aussi la donne dans ton cas.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    1) Même remarque que BlueDeep.

    2) Suis pas un expert en VB, mais à priori, suivant la version de VB.NET, le Dim "anonyme" est interpreté soit comme un "object", soit comme un type implicite (equivalent de var en C#). ca change aussi la donne dans ton cas.
    Attention ce n'est pas de VB.NET, c'est bien de l'ASP et je ne peux utiliser le fameux dim ... as long (ou autre), à chaque fois j'ai ce message d'erreur en retour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Erreur de compilation Microsoft VBScript  erreur '800a0401'
     
    Fin d'instruction attendue
     
    dim cValeur2 as long
    ---------^

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Au temps pour moi, je n'avais pas vu que j'avais répondu sur le forum ASP (à moins que le message ait été déplacé par un modérateur entretemps).


    Ca existe encore ce truc ?

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut .NET
    Et oui, ça existe encore... Je n'ai pas eu le temps de mettre à autre chose mais j'y songe de plus en plus quand je rencontre ce genre de problème...

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Oups!! Moi non plus je ne comprends pas comment je suis arrivé sur le forum asp... Normalement je n'y suis pas abonné.

  12. #12
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Peut-être ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cValeur2=cLng(cValeur2) + cLng(numb) +2

  13. #13
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Je ne suis pas sur que vbscript (oui, ca existe encore, et oui, c'est encore utilisé ) enregistre l'intégralité des chiffres significatifs pour les grands nombres. Il enregistre normalement une mantisse et un exposant.

    Pour un nombre à 32 chiffres, je ne pense pas qu'il enregistre 32 octets (256 bits). C'est à ma connaissance vrai pour la majorité des langages.
    Une petite recherche Google démontre que chacun y va de sa petite recette pour ce genre d'opérations.

    à confirmer.

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par roro06 Voir le message
    une mantisse et un exposant.

    Pour un nombre à 32 chiffres, je ne pense pas qu'il enregistre 32 octets
    Aucun langage n'enregistre 32 octets pour un nombre décimal à 32 chiffres et heureusment car ce serait sous optimal pour les calculs (sauf COBOL, et uniquement pour le format DISPLAY).

  15. #15
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Merci pour la confirmation

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Librairie
    Bonjour,

    merci pour vos réponses et excusez encore une fois ma réponse tardive.

    J'ai effectivement remarqué que ce problème est commun à des nombreux langages mais j'ai aussi remarqué que des dévelopeurs ont créé dans certains langages des fonctions permettant de réaliser ce genre de calcul.

    J'aurais espéré que cette fonction existait également...

    Mais alors comment font les types de la NASA ou les chercheurs en biologie moléculaire, ils ont besoin de chiffres exacts ces gens là ???

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par junioricus Voir le message
    Mais alors comment font les types de la NASA ou les chercheurs en biologie moléculaire, ils ont besoin de chiffres excats ces gens là ???
    Ca veut dire quoi "des chiffres exacs" ? rien.

    On n'a justement pas besoin en application "physique" d'une précision supérieure à celle des grandeurs mesurées.

    De ce point de vue, on dispose pour manipuler de grands ou petits ordres de grandeur du type "double" et pour manipuler un nombre élevé de chiffres significatfs du type "decimal".

    Des logiciels tel que MathLab doivent disposer de structures de précision supplémentaire (je suppose).

  18. #18
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Salut,

    Ceci devrait répondre à ton besoin :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    formatNumber(résultat,n)
    où n = au nombre de chiffre après la virgule dans ton cas 32

Discussions similaires

  1. Gestion des grands nombres en javascript
    Par fred32 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/10/2010, 11h30
  2. La gestion des grands nombres int64 linux/windows
    Par doommick31 dans le forum C++
    Réponses: 1
    Dernier message: 28/08/2009, 15h08
  3. manipuler des grands nombres
    Par Hypnocrate dans le forum C
    Réponses: 3
    Dernier message: 25/03/2006, 22h27
  4. Réponses: 3
    Dernier message: 10/03/2006, 16h41
  5. Réponses: 3
    Dernier message: 22/05/2005, 12h59

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