float和double数据类型是否可以存储纬度和经度?

我在服务器端存储经度和纬度(JAVA平台)。

要存储这些值,我在服务器端使用float和double数据类型。 我开始知道float和double不是推荐的原始数据类型(不建议以专业方式使用货币),因为float和double有舍入精度问题

在我的例子中,我只是比较服务器端存储的坐标(lattitude和longitude)。

问题1:

将坐标与数据类型(浮点数或双精度数)进行比较将来会出现什么问题?

问题2 :

使用大小数好吗? 或者使用浮点数或双倍更安全?

请指导我。

这不是一个安全问题,只是一个精确的问题。 我不会考虑花车,但双打是我认为理想的。 你只需要看看你能从双精度中获得的最精确度,看它是否符合常规的经度/纬度值。 我认为这还不够。

其他BigDecimal只是你问题的一个简单后门,如果你想要更高的精度就可以使用它

你应该从你想要的准确性开始。 确定后,您可以选择合适的数据类型。

如果您确定精确到5位小数(1.1132 m)就足够了,您可以轻松使用float 。 您的计算需要越准确,您应该越多地倾向于使用doubleBigDecimal

比较浮点数时,还应该包含必要的精度。

您不必对经度或纬度值进行任何舍入,因此请使用您想要的任何一个。 双精度更精确,所以这是决定中最重要的因素。

您的长/纬度值需要多少精度?

为了在地图上精确定位,您可能希望查看大小数,但对于模糊值,浮点就足够了。