Post

Visualizzazione dei post con l'etichetta floating point

Floating point numbers in JAVA

Immagine
INTRODUZIONE Tutti noi sviluppatori alla parola "numeri a virgola mobile" sentiamo un brivido percorrere la schiena. Ricordi lontani di giorni passati in università per capire come mai dovessimo imparare quelle assurdità... eh invece! Ci sbagliavamo! Andiamo con ordine... Più specificamente un numero a virgola mobile a doppia precisione è composto da 64 bit come segue: 1 bit per il segno (positivo o negativo) 11 bit per indicare l'esponente 52 bit per indicare la parte significativa del dato L'unione di queste parti rappresenteranno il valore. PROBLEMA A differenza di tipi come byte char int long che sono rappresentati da una lunghezza fissa di bit (quindi molto precisi), i numeri rappresentati mediante virgola mobile double e float possono sbagliare i calcoli per il semplice fatto che non possono precisamente rappresentare l'esatto valore di un numero ma andarci molto vicino. Questo è il motivo per cui se sommiamo due double del valore di 0....