Page 1 sur 1

Bug javascript : parseInt

MessagePublié: 08 Mars 2010 à 14:50
par mike76
Je viens de découvrir un truc surprenant en js

Lorsqu'on fait :
un parseInt('06') ça nous renvoie 6
un parseInt('07') ça nous renvoie 7

par contre :
un parseInt('08') ça nous renvoie 0
un parseInt('09') ça nous renvoie 0

Je viens de découvrir que c'est un bug javascript :
http://www.clt-services.com/blog/post/Javascript-Probleme-avec-la-fonction-parseInt%2808%29.aspx

www.clt-services.com a écrit:Il existe en fait un bug dans la fonction parseInt dans le cas où vous voudriez parser ces chaînes de caractères '08' ou '09'. Pourquoi pas pour '07' et '10' alors? C'est en fait parce que le navigateur croit que le 0 que nous tapons en premier signifie que nous voulons parser sur une base octale (base 8) et 8 et 9 n'existent pas dans cette base.

Nous avons alors deux solutions:

Parser en float puis parser en int ou parseInt(parseFloat('08'));
Forcer la base 10 en faisant un parseInt('08',10);