3 votes

La différence de millisecondes de Date() en Javascript ne s'additionne pas

J'ai créé cette JSFiddle pour illustrer ma question .

Il semble que 10 - 00 = 8 dans cet exemple.

La question simple : Pourquoi #ha contient-il 8 ? Ai-je mal compris quelque chose ?

var a4 = new Date(2012,00,00,00,00,00,0010);
var b4 = new Date(2012,00,00,00,00,00,0000);
var c4 = a4-b4;
var d4 = document.getElementById("ha");
d4.innerHTML=c4;

10voto

cdhowie Points 62253

Lorsqu'un littéral entier commence par 0 il est interprété comme un octal et non un littéral décimal. Le littéral 0010 a la même valeur que le littéral 8 . Enlevez les zéros de tête.

1voto

Patrick Gunderson Points 3134

L'utilisation d'un 0 en tête d'un nombre signale au processeur que vous utilisez un nombre octal (base 8), de la même manière que 0x indique l'hexagone.

0010 - 0 == 010 == 8 in base ten
10 - 0 == 10 == 10 in base ten
0x10 - 0 == 0x10 == 16 in base ten

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X