Muitas pessoas cometem o erro quando vêem o dobro e gritam BigDecimal, quando na verdade acabam de mudar o problema para outro lugar. O dobro fornece bit de sinal: 1 bit, largura do expoente: 11 bits. Precisão significativa: 53 bits (52 armazenados explicitamente). Devido à natureza do duplo, quanto maior o interger, você perde a precisão relativa. Para calcular a precisão relativa que usamos aqui, abaixo.
Precisão relativa do dobro no cálculo, usamos o seguinte foluma 2 ^ E <= abs (X) <2 ^ (E + 1)
epsilon = 2 ^ (E-10)% Para um flutuador de 16 bits (meia precisão)
Accuracy Power | Accuracy -/+| Maximum Power | Max Interger Value
2^-1 | 0.5 | 2^51 | 2.2518E+15
2^-5 | 0.03125 | 2^47 | 1.40737E+14
2^-10 | 0.000976563 | 2^42 | 4.39805E+12
2^-15 | 3.05176E-05 | 2^37 | 1.37439E+11
2^-20 | 9.53674E-07 | 2^32 | 4294967296
2^-25 | 2.98023E-08 | 2^27 | 134217728
2^-30 | 9.31323E-10 | 2^22 | 4194304
2^-35 | 2.91038E-11 | 2^17 | 131072
2^-40 | 9.09495E-13 | 2^12 | 4096
2^-45 | 2.84217E-14 | 2^7 | 128
2^-50 | 8.88178E-16 | 2^2 | 4
Em outras palavras, se você deseja uma precisão de +/- 0,5 (ou 2 ^ -1), o tamanho máximo que o número pode ter é 2 ^ 52. Qualquer que seja maior que isso e a distância entre números de ponto flutuante seja maior que 0,5.
Se você deseja uma precisão de +/- 0,0005 (cerca de 2 ^ -11), o tamanho máximo que o número pode ter é 2 ^ 42. Qualquer que seja maior que isso e a distância entre números de ponto flutuante seja maior que 0,0005.
Eu realmente não posso dar uma resposta melhor do que isso. O usuário precisará descobrir qual precisão deseja ao executar o cálculo necessário e seu valor unitário (metros, pés, polegadas, mm, cm). Para a grande maioria dos casos, o float é suficiente para simulações simples, dependendo da escala do mundo que você deseja simular.
Embora seja algo a ser dito, se você estiver apenas com o objetivo de simular um mundo de 100 metros por 100 metros, terá um lugar na ordem de precisão próximo de 2 ^ -45. Isso nem mesmo mostra como a FPU moderna dentro das CPUs fará cálculos fora do tamanho do tipo nativo e somente após a conclusão do cálculo eles serão arredondados (dependendo do modo de arredondamento da FPU) para o tamanho do tipo nativo.