DD.*_*DD. 57 java double geospatial bigdecimal latitude-longitude
当存储通常格式为44.087585(即在点之前最多2个数字和6dp)的纬度/经度时,我是否需要打扰bigdecimals?
Tre*_*eyA 146
使用double具有足够的精度,可以精确地将纬度/经度降至英寸,小数点后6-7位.在航空中,如果使用十进制度数,它们通常至少达到7位小数.在我们的NASA模拟中,纬度/经度数据是双倍的,而所有其他态度和高度都是浮点数.换句话说,高度的第6个小数位不重要,而纬度/经度的第6个小数位用于子脚精度.如果你需要精确到亚英尺,你不应该使用float作为lat/lon.
您可以在Google地球中玩游戏,通过放置标记和操纵最后一个十进制数字来查看获得的准确度.
Coo*_*ans 26
double纬度/经度应该没问题.BigDecimal一旦开始操纵货币或需要更多地控制精度,这一点就变得更加重要.
存储为 double 的最差精度约为 3 nm。
如果你想用 Java 计算它:
Math.ulp((double) 180) * 60 * 1852
3.1582203519064933E-9
Run Code Online (Sandbox Code Playgroud)
作为奖励;存储在浮点数中时获得的最差精度是 1.7 米。
如果你担心精确度,你可能会BigDecimal 因为这篇文章中涉及的很多原因而放弃.也就是说,double或者float 应该很好地存储您需要的东西,以满足您所需的价值范围.
只有六位小数的精度,我不认为double或float将绊倒你,但如果你开始以任何方式聚合这些值,那么次要的不精确就会开始加起来.
| 归档时间: |
|
| 查看次数: |
34104 次 |
| 最近记录: |