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?
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?
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.
Salut,
Chez moi ça marche normalement (pas d'arrondi).
A+
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.
Me donne au format anglais
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>")A+12,847,577
12,847,577.00
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?
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.
C'eqt bizzar que personne n'est rencontré ce problème!
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().
C'était ça, en effet merci.
maintenant ca parrait logique lol
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager