谷歌地图Javascript API LatLng类奇怪的行为

谷歌地图Javascript API LatLng类奇怪的行为,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在使用GoogleMapsJavaScriptAPI进行我的小Livetracking项目。在我的工作中,我在LatLng班上遇到了一种奇怪的行为。如果我输入下面示例中所示的两个值,我总是从LatLng对象的.lng()-方法中得到这个非常奇怪的返回值,但从.lat()-方法中却不是这样。我无法在谷歌文档中找到这种行为的解释。还有谁知道这个问题吗 var lat = 47.0189; var lng = 8.33244; var lastPoint = new google.maps.Lat

我正在使用GoogleMapsJavaScriptAPI进行我的小Livetracking项目。在我的工作中,我在LatLng班上遇到了一种奇怪的行为。如果我输入下面示例中所示的两个值,我总是从LatLng对象的.lng()-方法中得到这个非常奇怪的返回值,但从.lat()-方法中却不是这样。我无法在谷歌文档中找到这种行为的解释。还有谁知道这个问题吗

var lat = 47.0189;
var lng = 8.33244;
var lastPoint = new google.maps.LatLng(lat, lng);
console.log(lastPoint.lat());
console.log(lastPoint.lng());
Wich返回:

47.0189
8.33244000000002

谢谢你的帮助

JavaScript的数字通常输入为十进制浮点数,但它们在内部表示为二进制浮点数。这会导致不精确

有关更多详细信息,请阅读本书:


问题是什么?纬度和经度是浮点数,它们有时不能准确地表示数字。问题是我输入了8.33244,输出是8.33244000000002。为什么会有这个问题(这个差异在现实世界中是无法测量的)?可能的重复可能的重复