Hai davvero due domande qui.
Perché qualcuno ha bisogno di matematica in virgola mobile, comunque?
Come sottolinea Karl Bielefeldt, i numeri in virgola mobile ti permettono di modellare quantità continue - e li trovi dappertutto - non solo nel mondo fisico, ma anche in luoghi come affari e finanza.
Ho usato la matematica in virgola mobile in molte, molte aree della mia carriera di programmatore: chimica, lavorando su AutoCAD e persino scrivendo un simulatore Monte Carlo per fare previsioni finanziarie. In effetti, c'è un ragazzo di nome David E. Shaw che usa tecniche di modellazione scientifica basate su virgola mobile applicate a Wall Street per fare miliardi.
E, naturalmente, c'è la grafica per computer. Mi consulto sullo sviluppo di eye candy per le interfacce utente, e provare a farlo al giorno d'oggi senza una solida conoscenza del punto fluttuante, della trigonometria, del calcolo e dell'algebra lineare, sarebbe come presentarsi a una sparatoria con un coltellino.
Perché qualcuno dovrebbe aver bisogno di un float contro un doppio ?
Con le rappresentazioni standard IEEE 754, un float a 32 bit fornisce circa 7 cifre decimali di precisione ed esponenti nell'intervallo 10 -38 a 10 38 . Un doppio a 64 bit fornisce circa 15 cifre decimali di accuratezza ed esponenti nell'intervallo 10 -307 a 10 307 .
Potrebbe sembrare che un galleggiante sarebbe sufficiente per quello di cui chiunque avrebbe ragionevolmente bisogno, ma non lo è. Ad esempio, molte quantità del mondo reale sono misurate in più di 7 cifre decimali.
Ma più sottilmente, c'è un problema chiamato colloquialmente "errore roundoff". Le rappresentazioni in virgola mobile sono valide solo per valori le cui parti frazionarie hanno un denominatore che è un potere di 2, come 1/2, 1/4, 3/4, ecc. Per rappresentare altre frazioni, come 1/10, si "arrotondano" il valore della frazione binario più vicina, ma è un po 'sbagliato - questo è l' "errore di arrotondamento". Poi, quando fai matematica su quei numeri imprecisi, le inesattezze nei risultati possono essere molto peggiori rispetto a quello che hai iniziato - a volte le percentuali di errore si moltiplicano o si accumulano in modo esponenziale.
Ad ogni modo, più cifre binarie devi lavorare, più la tua rappresentazione binaria arrotondata sarà vicina al numero che stai cercando di rappresentare, quindi il suo errore di arrotondamento sarà minore. Quindi quando fai matematica su di esso, se hai un sacco di cifre su cui lavorare, puoi fare molte più operazioni prima che l'errore di arrotondamento cumulativo si accumuli su dove è un problema.
In realtà, i doppi a 64 bit con le loro 15 cifre decimali non sono sufficienti per molte applicazioni. Stavo usando i numeri in virgola mobile a 80-bit nel 1985, e IEEE ora definisce un tipo a virgola mobile a 128-bit (16-byte), per il quale posso immaginare usi.