86 votes

Java double vs BigDecimal pour la latitude/longitude

Lors du stockage des latitudes/longitudes qui sont généralement au format : 44.087585 (c'est-à-dire au maximum 2 nombres avant le point et 6dp) dois-je m'embêter avec les grandes décimales ?

41voto

CoolBeans Points 11615

double devrait convenir pour les latitudes/longitudes. BigDecimal devient plus important une fois que vous commencez à manipuler des devises ou que vous avez besoin d'avoir plus de contrôle sur la précision.

7voto

Chris Jester-Young Points 102876

Un double a suffisamment de précision pour le stocker. Cependant, lors de l'affichage aux utilisateurs, utilisez une chaîne de format telle que %.6f afin de ne pas imprimer de chiffres indésirables.

7voto

Gussoh Points 46

La pire précision de stockage en tant que double est d'environ 3 nm.

Si vous souhaitez le calculer en Java :

 Math.ulp((double) 180) * 60 * 1852

3.1582203519064933E-9

En prime; la pire précision que vous obtenez en stockant dans des flotteurs est de 1,7 mètre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X