Sto lavorando a un rapporto mentre scrivo questo. Uno dei campi è un long
millisecondi di durata che ho ricevuto da qualche altra parte. Questo verrà inviato a Microsoft Excel e le unità di durata che utilizza sono giorni decimali ( 1.25
= 1 giorno, 6 ore).
Certo, puoi suddividere un intervallo dal valore più basso possibile al più grande e avere unità intere che si spostano tra di loro, ma questa è una unità scomoda davvero con cui lavorare nella maggior parte dei casi.
Ci sono tre volte che entrano in gioco quando si lavora con i computer:
- Tempo necessario per il codice
- Tempo necessario per eseguire
- Tempo necessario per mantenere
Quando si lavora con numeri interi piuttosto che in virgola mobile, si fanno trading i tempi 1 e 3 per il tempo 2 per correre più velocemente. Ma ecco la cosa ... non ho bisogno di per correre veloce.
Se c'è un errore di arrotondamento nel decimo decimale nel calcolare un tempo decimale, sono frazioni di secondo di cui non mi importa (il rapporto è HH:MM:SS
- non HH:MM:SS.000
). Non si arrotondano a ciò che sto trattando o presentando. Il punto in virgola mobile è abbastanza buono.
Calcolando l'area di un cerchio per un grafico o dove pi trova la sua strada in probabilità con solo interi è non divertente . Pi è non 3.
È anche più veloce per farmi lavorare con virgola mobile in molti posti. 1.5
è 1.5
not (15 con una scala di 1). Così posso scrivere il mio codice più velocemente e la persona che lo gestisce può leggerlo più velocemente e lavorare con esso.
Se hai bisogno di usare la precisione a punto fisso (denaro) o matematica pura per accelerare determinate applicazioni (simulando galassie in collisione e bombe nucleari), usa tutti i mezzi. Ma per la maggior parte delle cose, il virgola mobile va bene se non stai davvero affrontando quelle situazioni specializzate.
Sta funzionando solo con una estremità della scala. I numeri che possono essere suddivisi tra 0 e 2 64 (o comunque molti bit che stai usando). 2 64 è di circa 10 19 . Ma cosa succede se hai bisogno di lavorare con 10 20 o 10 200 ? Ci sono problemi che funzionano in questo dominio che non sono limitati ai super computer. Ci sono volte in cui le normali simulazioni e giochi usano i float - spesso a causa di restrizioni sulla libreria, ma li usano anche lì. A volte è più semplice.
Riferito a gamedev.SE: Informazioni sulla precisione in virgola mobile e perché la utilizziamo ancora