我正在为我的小Livetracking-Project使用Google Maps Javascript API。在我的工作中,我遇到了LatLng-Class的奇怪行为。如果我输入下面的示例中显示的两个值,我总是从 LatLng-Object 的 .lng()-Method 获得这个非常奇怪的返回值,但从 .lat()-Method 中则不然。我无法在谷歌文档中找到这种行为的解释。还有其他人知道这个问题吗?
var lat = 47.0189;
var lng = 8.33244;
var lastPoint = new google.maps.LatLng(lat, lng);
console.log(lastPoint.lat());
console.log(lastPoint.lng());
威奇返回:
47.0189
8.33244000000002
来自 JS-Console 的屏幕截图
感谢您的帮助!
JavaScript 的数字通常以十进制浮点数的形式输入,但它们在内部表示为二进制浮点数。这导致不精确。
有关更多详细信息,您可以阅读本书:
http://speakingjs.com/es5/ch11.html#number_representation