Ho letto molto sui float, ma è tutto inutilmente coinvolto. Io penso li ho più o meno capito, ma c'è solo una cosa che vorrei sapere con certezza:Quali tipi di numeri sono rappresentabili in virgola mobile binario?
So che, frazioni di forma 1/pow(2,n)
, con n
un intero, possono essere rappresentati esattamente in numeri in virgola mobile. Ciò significa che se aggiungo 1/32
a se stesso 32 milioni di volte, otterrei esattamente 1,000,000
.
Che dire di qualcosa come 1/(32+16)
? È uno sopra la somma di due poteri di due, funziona? O è 1/32+1/16
che funziona? È qui che sono confuso, quindi se qualcuno potesse chiarire che per me lo apprezzerei.
Quindi, se ho capito bene, posso usare qualsiasi numero 'X/Y' finchè' Y' è una potenza di 2 e 'X' è un numero inferiore a' 2^53'? –
Sì, è corretto. (salvo casi di sovra/underflow) – Mysticial
@Mysticial: +1 per la risposta, ma ho un dubbio. 24/48 = 0,5, tuttavia secondo la regola precedente, non dovrebbe essere rappresentabile poiché 3 è uno dei fattori primi di 48, che non è uno dei 10 fattori primi. Perché? – legends2k