MAX_SAFE_INTEGER di javascript
La proprietà MAX_SAFE_INTEGER è una costante che rappresenta il valore massimo che posso rappresentare senza perdita di precisione all'interno del linguaggio JavaScript.
Number.MAX_SAFE_INTEGER
Il linguaggio Javascript rappresenta i numeri in doppia precisione (double precision) a 64 bit secondo lo standard IEEE 754.
Il valore di MAX_SAFE_INTEGER in JavaScript è 9.007.199.254.740.991 (ovvero 253 - 1).
E' il numero intero più grande che può essere rappresentato in modo preciso e senza perdita di precisione nell'aritmetica di JavaScript.
Nota. Significa che tutti i numeri interi in Javascript sono compresi tra -MAX_SAFE_INTEGER e MAX_SAFE_INTEGER. Oltre questo limite il calcolo è possibile ma diventa impreciso e inaccurato.
Un esempio pratico
In questo script utilizzo la costante.
<script>
let x = Number.MAX_SAFE_INTEGER
document.write(x);
let y = x*10;
document.write(y);
</script>
Lo script assegna la costante MAX_SAFE_INTEGER e lo stampa.
9007199254740991
Poi moltiplica per 10 la variabile x, assegna il risultato alla variabile y e lo stampa.
90071992547409900
Il risultato è errato perché dovrebbe essere semplicemente 90071992547409910.
Questo accade perché il valore supera il limite di rappresentazione sicura dei numeri interi in JavaScript.