我想保存GPS坐标。它的双格式。保存没问题,
47.60065481725239
18.03011322140128
出现值,但当我尝试阅读它们时,我得到了
47.600654817252
18.030113221401
略显不精确。
答案 0 :(得分:1)
您正在看一个浮点数固有不精确的例子,一个好的例子。您可能会发现查找machine epsilon的概念很有帮助。
商用GPS系统本身几乎没有DOUBLE
所代表的精度。对于大多数应用程序FLOAT
是充足的。但是,如果你知道术语 Datum 或 Universal Transverse Mercator 并且它们对你的应用程序很重要,你可能想要使用DOUBLE
。
然而,由于DOUBLE
epsilon误差导致的GPS位置不准确度大约为十分之一Å单位(百分之一纳米)。你甚至不能让原子保持足够长的时间来精确地测量它们的位置。所以不要担心。
请了解浮点数的工作原理。
答案 1 :(得分:1)
根据需要,浮点数的精度有限:double
仅保证存储15 significant digits。然而,在你的情况下,这应该足够了:地球的半径是40,075公里,所以double
应该能够将你的位置存储到至少40纳米,这是approximately the size of a virus particle(大概你的输入不准确)。
答案 2 :(得分:0)
我会说你值得探索MySQL中的decimal
数据类型:
http://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html
如果您将列数据类型设置为decimal(16,14)
,那么会在您之前提供2位数字。和之后的14。
请注意,我想知道GPS坐标的精度甚至意味着......