Perché 0,1 +0,2 != 0,3 in JS
beh, questo non è un problema js, ma ha a che fare con la capacità dei computer che possono solo memorizzare nativamente interi , quindi hanno bisogno di un modo per rappresentare i numeri decimali. Questa rappresentazione non è perfettamente accurata. Questo è il motivo per cui, il più delle volte, 0.1 + 0.2 != 0.3.
scaviamo più a fondo.
quindi l'output di 0.1 + 0.2 è 0.300000000000000004 che rispetto a 0.3 restituisce false
console.log(0.1 + 0.2)
// output - 0.30000000000000004
console.log(0.3 === 0.30000000000000004)
// false
Per confrontare questo con il nostro sistema in base 10 che. usiamo nella nostra vita quotidiana I fattori primi di 10 sono 2 e 5. Quindi 1/2, 1/4, 1/5, 1/8 e 1/10 possono essere tutti espressi in modo pulito perché tutti i denominatori usano numeri primi fattori di 10. ciò significa che conosciamo alcuni valori per loro al contrario di 1/3, 1/6, 1/7 e 1/9 sono tutti decimali ripetuti perché i loro denominatori usano un fattore primo di 3 o 7 che non sono fattori primi di 10.
Ora in caso di fuori frazione. sarà convertito in binario (o base-2), quindi l'unico fattore primo è 2, quindi puoi esprimere in modo pulito solo frazioni il cui denominatore ha solo 2 come fattore primo. In binario, 1/2, 1/4, 1/8 sarebbero tutti espressi in modo pulito come decimali, mentre 1/5 o 1/10 sarebbero decimali ripetuti. Quindi 0,1 e 0,2 (1/10 e 1/5) non sarebbero rappresentati in modo pulito, il che risulterà in alcuni avanzi che vediamo nel nostro calcolo a causa della loro rappresentazione.
Riferimenti :
- La guida in virgola mobile: ciò che ogni programmatore dovrebbe sapere sull'aritmetica in virgola mobile o, perché i miei numeri non si sommano? (virgola mobile-gui.de)
- https://0.30000000000000004.com/

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































