Ho visto entrambe le varianti che le persone usano ... Solo non so che il float non è sufficiente per iOS5?Memorizzazione delle coordinate dalla posizione principale nei dati principali. Float o Double?
risposta
Un float a 32 bit contiene 7 cifre di precisione, una doppia di 64 bit contiene 15 cifre di precisione.
Con 7 cifre di precisione, la longitudine massima di 179.9999 è accurata solo fino a 0,0001 gradi. Un grado è di circa 60 miglia nautiche, quindi 0,0001 gradi è di circa 10 metri (33 piedi). Se si desidera memorizzare valori lat/lon più precisi, è necessario utilizzare un numero intero doppio o un punto fisso.
In questi giorni non importa molto.
Un double è solo uno slot con valore float che può contenere il doppio della precisione di un float standard. A meno che non lo forziate ad usare un float, il compilatore Objective-c memorizzerà tutti i valori float come un doppio.
I galleggianti e i doppi sono in gran parte resistenti dai vecchi tempi quando la memoria era super stretta. Di questi tempi, di solito li vedi solo quando si tratta di formattazione delle stringhe. È lo stesso con varie dimensioni di int. Tutte le dimensioni sono memorizzate nella dimensione più grande disponibile a meno che non si imponga al compilatore di fare diversamente.
per rispondere che la precisione si ha quando si usano carri o doppio sono venuto su con questa risposta:
caso peggiore precisione quando la memorizzazione dei numeri come decimali per E/W e N/S:
- galleggiante: 1,6955566 metri
- doppio: 3,1582203519064933E-9 metri. (Questo è il 3 nm)
Si può fare i calcoli da soli eseguendo questo in Java:
public class Main {
public static void main(String[] args) {
System.out.println(Math.ulp((float) 180) * 60 * 1852);
System.out.println(Math.ulp((double) 180) * 60 * 1852);
}
}
So che questo è un vecchio thread, ma ho trovato durante la ricerca per il problema. Float è probabilmente sufficiente per la maggior parte delle applicazioni. Il GPS del dispositivo Apple in questione probabilmente non ha una precisione migliore di quella. Ma è più semplice archiviare i doppi fintanto che i dati non sono un problema.
Recentemente, penso che sia solo più facile da memorizzare coordinare in Core Data come NSValue
in attributo trasformabile:
[NSValue valueWithMKCoordinate:coordinate]
- 1. Memorizzazione dell'oggetto UIColor nei dati principali
- 2. Memorizzazione di NSNumber opzionale nei dati principali
- 3. Numeri di versione float, decimal o double
- 4. Memorizzando dati statistici, ho bisogno di DECIMAL, FLOAT o DOUBLE?
- 5. Conversione di char * in float o double
- 6. Relazioni indicizzate nei dati principali
- 7. Come ottenere l'elenco delle entità esistenti (tabelle) nei dati principali
- 8. Gli array float, float [] e double [] diversi, o lo stesso?
- 9. Java: double vs float
- 10. Java raytracing float vs double
- 11. Cosa succede quando si converte double (o float) in ints?
- 12. Memorizzazione di UIImage nei dati principali con il nuovo flag di memoria esterna
- 13. ID oggetto autoincrementato nei dati principali?
- 14. Modulo Python per la memorizzazione e l'interrogazione delle coordinate geografiche
- 15. `float` vs` double` in calcoli singoli casuali?
- 16. Memorizzazione nella cache dei dati nei graal
- 17. float vs double (in Java)
- 18. Eliminazione di oggetti di relazione con Cascade nei dati principali
- 19. Coordinate dalla matrice delle distanze in R
- 20. Ruby float con double 0
- 21. Double vs float su iPhone
- 22. Memorizzazione di due valori float in una variabile float singola
- 23. Entity Framework associa il tipo di dati float in double
- 24. Integrazione relazionale e convalida nei dati principali iCloud Syncing
- 25. Converti double in float per cast o Convert.ToSingle()?
- 26. opencv: convertire scalare in float o double type
- 27. Memorizzazione e interrogazione delle coordinate GPS in modo efficace
- 28. Dati principali VS Sqlite o FMDB ....?
- 29. Ricerca delle coordinate dei punti dalla matrice delle distanze
- 30. Rails 3 Float o decimal per le coordinate GPS
Ho appena realizzato che ho anche bisogno di fare Pitagora con il più grande errore nel altra direzione anche. Quindi un po 'peggio. :) – Gussoh