. :: JavaScript ne prend en charge que les entiers 53 bits ::.
Tous les nombres en virgule flottante sont JavaScript qui signifie que les nombres entiers sont toujours représentés comme
sign × mantissa × 2exponent
La mantisse a 53 bits. Vous pouvez utiliser l'exposant pour obtenir des entiers plus élevés, mais ils ne seront plus contigus. Par exemple, vous devez généralement multiplier la mantisse par deux (exposant 1) pour atteindre le 54ème bit.
Cependant, si vous multipliez par deux, vous ne serez en mesure de représenter chaque seconde entier:
Math.pow(2, 53) // 54 bits 9007199254740992
Math.pow(2, 53) + 1 // 9007199254740992
Math.pow(2, 53) + 2 //9007199254740994
Math.pow(2, 53) + 3 //9007199254740996
Math.pow(2, 53) + 4 //9007199254740996
ont été arrondis au cours de l'ajout font des choses imprévisibles pour des incréments impairs (+1 par rapport à +3). La représentation réelle est un peu plus compliquée mais cette explication devrait vous aider à comprendre le problème de base.
Vous pouvez utiliser en toute sécurité la bibliothèque strint pour coder de grands entiers dans des chaînes et effectuer des opérations arithmétiques sur celles-ci.
Here est l'article complet.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE –
Désolé, déjà corrigé. – user1518183
a et b sont le même nombre, et les mêmes numéros sont identiques ou égaux. – dandavis