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 :

asp et les nombres à plus de 8 chiffres


Sujet :

ASP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut asp et les nombres à plus de 8 chiffres
    salut,
    J'ai remarqué que ASP arrondisssait les nombres lorsque ceux-ci atteignaient 8 chiffres par exemple il me transforme 12 847 577 en 12 847 580,00.
    En plus il me rajoute des ,00 , j'ai pas compris!

    Quelqu'un connait ce problème?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    Petite rectification, cela n'arrive qu'aux nombres auquelles est appliquer la fonction formatnumber

    If InStr(nombre, ",") = 0 Then
    sepmillier=formatnumber(nombre,0,false,false,true)
    else
    sepmillier=formatnumber(nombre,2,true,false,true)
    End If

    et tout mes nombres à 8 chiffres se font arrondir et se retrouve avec des ,00 à la fin, c'est comme si asp voyait en eux une virgule, mais cela n'explique pas le fait qu'il les arrondissent.

  3. #3
    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 512
    Points
    9 512
    Par défaut
    Salut,

    Chez moi ça marche normalement (pas d'arrondi).

    A+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    Meme avec les nombres à plus de 7 chiffres?

    si je n'applique pas la fonction formatnumber asp affiche ces nombres sous la forme 2.7787445 *10^8

    en effet au lieu de 277 874 448 avec la forme précédente on obtiendra un arrondi 277 874 450 lorsque formatnumber sera appliqué à ce nombre.

    Je ne trouve pas de solution.

  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 512
    Points
    9 512
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    response.Write(formatnumber(12847577,0,false,false,true) & "<br>")
    response.Write(formatnumber(12847577,2,true,false,true) & "<br>")
    Me donne au format anglais
    12,847,577
    12,847,577.00
    A+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    Oui évidement,

    J'ai dût tres mal m'exprimé, mais passons...
    Comme je voulais le dire dans mon dernier message, le problème ne provient pas de là. En fait , le souci c'est que ASP m'affiche mes nombres à 8 chiffres en format scientifique donc au lieu de 87 784 787 par exemple il va m'afficher ceci: 8.778479 E8 et en effet cela donne 87 784 790,d'où l'arrondi lorsque je lui applique le formatnumber.
    et comme je n'applique le formatnumber que si il ya une virgule dans mon nombre, et que en effet c'est le cas si ce dernier est afficher en mode scientifique, alors je vais obtenir le ,00 à la fin de mes nombres.

    Est ce que quelqu'un sait comment éviter l'affichage en mode scientifique?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    En clair:
    J'ai un nombre avec 8 chiffres contenues dans une bd.
    ex:88 587 129

    Lorsque je fais afficher le résultat de ma requete, donce mon fameux nombres à 8 chiffres, ASP me l'affiche sous forme scientifique:
    ex:8,858713 E8 (ce qui est déja un arrodi de mon nombre précédent)

    Ensuite j'applique un formatnumber au résultat de ma requête ave 2 chiffres apres la virgule s'il s'agit d'un nombre décimal et 0 si c'est un entier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <%Function sepmillier(nombre)
    'séparateur de milliers
    	if nombre=0 then
    		sepmillier=0
    	else
    		If InStr(nombre, ",") = 0 Then
    			sepmillier=formatnumber(nombre,0,false,false,true)
    		else
    			sepmillier=formatnumber(nombre,2,true,false,true)		
    		End If
    	end if
    End Function %>



    Comme avec le format scientifique mon nombre ce retrouve avec une virgule alors je vais passer dans le "else" et je vais finellement me retrouver avec
    88 587 130,00 au lieu de 88 587 129.

    Je ne sais pas comment résoudre ce problème.
    J'éspère avoir été plus clair.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    C'eqt bizzar que personne n'est rencontré ce problème!

  9. #9
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    je te suggère de vérifier :

    - que le champ stockant ton nombre n'est pas de type réel simple dans ta base de données. Le type réel double te permettra une plus grande précision (attention, si tu changes le type de ton champ, je te conseille de faire auparavant une sauvegarde de ta base de données)

    - que tu n'appliques pas la fonction CSng() à ton nombre dans ta requête SQL* ou lors de ton traitement ASP. Cette fonction sert à convertir un nombre en réel simple et pourrait donc expliquer ton problème. La fonction CDbl() te permettra de le convertir plutôt en réel double.

    * au niveau de ta requête SQL, il est possible, en fonction de ton SGBD, que la fonction de conversion en réel simple ne s'appelle pas CSng().

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    C'était ça, en effet merci.
    maintenant ca parrait logique lol

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/09/2010, 11h54
  2. Ajouter les x plus grand nombre parmi N
    Par cignus77 dans le forum Requêtes
    Réponses: 16
    Dernier message: 14/08/2010, 12h23
  3. Fonction qui définie les nombres des chiffres
    Par aliassaf dans le forum MATLAB
    Réponses: 3
    Dernier message: 02/04/2009, 01h38
  4. Réponses: 2
    Dernier message: 14/05/2008, 09h57
  5. Réponses: 7
    Dernier message: 15/10/2007, 15h41

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