Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Bug sur la fonction parseInt

31/07/2009
La fonction parseInttranstype une chaine en entier. Ainsi,
parseInt('3')
renvoie 3,
parseInt('123.45')
renvoie 123...

Cette fonction permet aussi de transformer du binaire :
parseInt('00100101', 2)
renvoie 37.

Cependant,
parseInt('0805')
renverra 0 sur les navigateurs Safari, Internet Explorer, Firefox, Chrome. Seul Opera s'en sort en renvoyant 805.

Le bug provient peut-être du fait qu'une chaîne commençant par 0 serait présumée être un nombre à base 8. Comme seulement les chiffres 0 et 1 sont acceptés, les autres doivent être purement supprimés.

La solution : forcer la base 10 (le 2ème paramètre de parseInt) en faisant
parseInt('0805',10);


Ou alors
parseInt('0805'.replace(/^0+/g, ''))
Dernière modification le 08/03/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations