Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
YD
Thierry Loiseau wrote:
J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore juillet ?) alors que je commençais le développement du futur long JS d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 : <citation src="ECMA-262"> 15.1.2.2 parseInt (string , radix) The parseInt function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading whitespace in the string is ignored. If radix is undefined or 0, it is assumed to be 10 except when the number begins with the character pairs 0x or 0X, in which case a radix of 16 is assumed. Any radix-16 number may also optionally begin with the character pairs 0x or 0X. [...] 12. If the length of S is at least 1 and the first character of S is “0”, then at the implementation's discretion either let R = 8 or leave R unchanged. </citation>
En fait, je n'utilise plus parseInt() et préfère désormais l'emploi du parseFloat() pour éviter par inadvertance les erreurs.
Il y a plus simple (dans l'écriture parce qu'au niveau interne ça doit être à peu près équivalent) l'utilisation de l'opérateur unaire + qui convertit une valeur quelconque en nombre (ou NaN le cas échéant ;-) ). <citation src="ECMA-262"> 11.4.6 Unary + Operator The unary + operator converts its operand to Number type. </citation> Il vaut mieux l'encadrer de parenthèses pour éviter des erreurs d'interprétation dans une expression ou insérer une espace avant l'opérateur -> c=b+(+a) ou c=b+ +a. L'opérateur + convertit aussi des écritures scientifiques comme "+.1234e-3"
-- Y.D.
Thierry Loiseau wrote:
J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore
juillet ?) alors que je commençais le développement du futur long JS
d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 :
<citation src="ECMA-262">
15.1.2.2 parseInt (string , radix)
The parseInt function produces an integer value dictated by interpretation of the contents of the string argument according to the
specified radix. Leading whitespace in the string is ignored. If radix is undefined or 0, it is assumed to be 10 except when the
number begins with the character pairs 0x or 0X, in which case a radix of 16 is assumed. Any radix-16 number may also optionally
begin with the character pairs 0x or 0X.
[...]
12. If the length of S is at least 1 and the first character of S is “0”, then at the implementation's
discretion either let R = 8 or leave R unchanged.
</citation>
En fait, je n'utilise plus parseInt() et préfère désormais l'emploi du
parseFloat() pour éviter par inadvertance les erreurs.
Il y a plus simple (dans l'écriture parce qu'au niveau interne ça doit être à peu près équivalent) l'utilisation de l'opérateur
unaire + qui convertit une valeur quelconque en nombre (ou NaN le cas échéant ;-) ).
<citation src="ECMA-262">
11.4.6 Unary + Operator
The unary + operator converts its operand to Number type.
</citation>
Il vaut mieux l'encadrer de parenthèses pour éviter des erreurs d'interprétation dans une expression ou insérer une espace avant
l'opérateur -> c=b+(+a) ou c=b+ +a. L'opérateur + convertit aussi des écritures scientifiques comme "+.1234e-3"
J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore juillet ?) alors que je commençais le développement du futur long JS d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 : <citation src="ECMA-262"> 15.1.2.2 parseInt (string , radix) The parseInt function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading whitespace in the string is ignored. If radix is undefined or 0, it is assumed to be 10 except when the number begins with the character pairs 0x or 0X, in which case a radix of 16 is assumed. Any radix-16 number may also optionally begin with the character pairs 0x or 0X. [...] 12. If the length of S is at least 1 and the first character of S is “0”, then at the implementation's discretion either let R = 8 or leave R unchanged. </citation>
En fait, je n'utilise plus parseInt() et préfère désormais l'emploi du parseFloat() pour éviter par inadvertance les erreurs.
Il y a plus simple (dans l'écriture parce qu'au niveau interne ça doit être à peu près équivalent) l'utilisation de l'opérateur unaire + qui convertit une valeur quelconque en nombre (ou NaN le cas échéant ;-) ). <citation src="ECMA-262"> 11.4.6 Unary + Operator The unary + operator converts its operand to Number type. </citation> Il vaut mieux l'encadrer de parenthèses pour éviter des erreurs d'interprétation dans une expression ou insérer une espace avant l'opérateur -> c=b+(+a) ou c=b+ +a. L'opérateur + convertit aussi des écritures scientifiques comme "+.1234e-3"
-- Y.D.
thierry.loiseau
Salut Yves !
YD wrote:
> J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore > juillet ?) alors que je commençais le développement du futur long JS > d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 :
Yep !! Remarque les guillemets !-) -- <http://astrophoto.free.fr> Calculatrice astronomique en JavaScript, une carte du ciel avec la position des planètes, animation du système solaire, et «ousqu'ilfait» jour & nuit ?
Salut Yves !
YD <no_mail@web.com> wrote:
> J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore
> juillet ?) alors que je commençais le développement du futur long JS
> d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 :
Yep !! Remarque les guillemets !-)
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?
> J'avais annoncé cette "anomalie" ici même fin juillet 2000 (encore > juillet ?) alors que je commençais le développement du futur long JS > d'astrophoto (plus de 2000 lignes pour le script principal, en final).
Ce n'est pas une anomalie, voir la norme Ecma-262 :
Yep !! Remarque les guillemets !-) -- <http://astrophoto.free.fr> Calculatrice astronomique en JavaScript, une carte du ciel avec la position des planètes, animation du système solaire, et «ousqu'ilfait» jour & nuit ?