转换为int时坐标不准确

时间:2011-04-25 22:47:21

标签: java android google-maps coordinates

我从Facebook到地方的坐标,这些有时最多12位小数。将这些转换为int(* 1E6)时,由于它正在削弱一些数字,因此我的精确度会下降。

例如,双59.313732591172表示为int 59313732。

我如何保持准确性?在Android上有什么办法吗?使用GeoPoint类我似乎坚持使用int。

麦克

2 个答案:

答案 0 :(得分:1)

int只能保存整数,因此您可以看到您要求的行为。

59.313732591172 * 1E6 = 59313732.591172

(int)59313732.591172 = 59313732

如果您需要保留更多数字,请继续使用double,转换为long而不是int并乘以更大的数字(例如1E12)

这就是如何将浮点数转换为int / long以任何类型语言运行。在这里,它是一个Java功能,并没有特定于Android。

答案 1 :(得分:0)

int对于某些数字来说太短(实际上,对于大多数数字而言),因为它只有32位。请改用long。见here