Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/05/2007, 18h21   #1
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
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?
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 18h40   #2
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
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.
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 21h32   #3
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

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

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 10h21   #4
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
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.
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 11h46   #5
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Code :
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
Citation:
12,847,577
12,847,577.00
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 15h44   #6
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
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?
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 10h50   #7
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
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 :
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.
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 15h56   #8
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
C'eqt bizzar que personne n'est rencontré ce problème!
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2007, 12h40   #9
J1
Membre actif
 
Inscription : mai 2004
Messages : 225
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 225
Points : 195
Points : 195
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().
J1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 16h31   #10
Membre du Club
 
Inscription : février 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 172
Points : 44
Points : 44
C'était ça, en effet merci.
maintenant ca parrait logique lol
mohcultiv est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h21.


 
 
 
 
Partenaires

Hébergement Web