Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
959 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] erreur de parseInt étrange

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[javascript] erreur de parseInt étrange

n°1277033
$man
Posté le 04-01-2006 à 17:25:31  profilanswer
 

Bonsoir,
 
un truc bizarre en js.
 
si je fais :
 

Code :
  1. test = '07'
  2. alert(parseInt(test))


 
J'ai un beau 7 qui s'affiche
 
mais si je mets '08' ou '09' ca ne fonctionne pas, les autres nombres passent eux.
 
Si quelqu'un a une idée.  :hello:


Message édité par $man le 04-01-2006 à 17:25:50
mood
Publicité
Posté le 04-01-2006 à 17:25:31  profilanswer
 

n°1277042
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-01-2006 à 17:34:44  profilanswer
 

Code :
  1. alert(parseInt(test,10));

n°1277055
afbilou
pouet your life
Posté le 04-01-2006 à 17:46:12  profilanswer
 

0 devant c'est un nombre au format octal non ?
donc 8 et 9 n'existe pas dans cette base.

n°1277137
$man
Posté le 04-01-2006 à 19:38:59  profilanswer
 

hum,
merci de ces réponses,  on en apprend vraiment tous les jours :)
 
:hello:

n°1277311
Arjuna
Aircraft Ident.: F-MBSD
Posté le 04-01-2006 à 23:06:19  profilanswer
 

y'a pas qu'avec 0 devant que ça déconne.
 
j'ai déjà eu ce problème sur un grand site e-Commerce. le bug était resté en suspend pendant des semaines, parcequ'on ne comprenait pas ce qu'il se passait :D
et du coup quand les gens voulaient 9 unités d'un tuc, il se retrouvaient avec 11 :ouch:
 
depuis, je vous le radix à chaque fois que je croise une fonction qui l'accepte comme paramètre optionnel :D

n°1410572
lkolrn
<comment ça marche?>
Posté le 20-07-2006 à 19:10:15  profilanswer
 

je viens d'avoir ce problème, et c'est vrai que ça surprend sur le coup... :heink:  
 
Surtout que dans la doc, il est bien spécifié que le 2ème paramètre optionnel (la base) vaut 10 par défaut, ce qui est un mensonge éhonté :o La fonction marche en base 8 par défaut...
 
Pour ceux qui galèreraient un jour avec ça :
 

Code :
  1. alert(parseInt("09",10)); //affiche l'entier 9

Ca marche bien
 
 :hello:

n°1410668
pikti
I’ve done worse
Posté le 20-07-2006 à 22:17:03  profilanswer
 

Citation :

Les spécifications ECMAScript stipulent que si la chaîne débute par "0" (mais non "0x" ou "0X" car là parseInt() l'interprèterait comme un nombre hexadécimal), parseInt() peut la parser comme étant un nombre octal ou un nombre décimal.
Comme le comportement n'est pas spécifié, vous ne devriez jamais utiliser parseInt() pour parser des nombres avec des zéros d'entrée, à moins de spécifier clairement la base à utiliser !


 
source : JavaScript La référence (O'Reilly)
 
edit : euh.. tout ça pour dire que ce n'est pas forcément un mensonge éhonté  ;)


Message édité par pikti le 20-07-2006 à 22:35:42
n°1414314
richton95
Posté le 27-07-2006 à 10:28:24  profilanswer
 

Merci pour l'astuce, j'ai remarqué ce pb ajd. Je serais passé quelques jours plus tot je serais toujours en train de galérer ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] erreur de parseInt étrange

 

Sujets relatifs
Supprimer l'affichage des erreurs javascript.transfèrer du texte d'une variable php à du javascript
[Resolu]Erreur à la fermeture de la balise HTMLErreur de validation CSS
[PL/SQL] Récupérer l'erreurNouveau site perso ( html + javascript + php) avec jeux en flash nbrx
Securité du Javascript ? (XMLHttprequest)Erreur à l'édition de lien pour aws-net-ssl-certificate.adb [sésolut]
Erreur de compilation de jsp inconnueErreur de syntaxe pour une sous-requete
Plus de sujets relatifs à : [javascript] erreur de parseInt étrange


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR