Проставить точку после двух чисел, например 65.0987
Всем привет, есть скрипт рассчета растояния между городами, скрипт
в целом работает нормать, но есть одна проблема в нем если растояние между городами к примеру (Киев-Москва) больше 100 км то скрипт отображает верное расстояние 853 км а вот если взять города у которых расстояние между ними будет меньше 100 км то тут начинаются чудеса со скриптом например расстояние (Полтава-Диканька) по факту 30 км скрипт показывает 302 км и такая фигня со всеми замерами между городами если их фактическое расстояние меньше 100 км например расстояние (Полтава-Харьков) скрипт отобразит верно 144 км так как тут уже больше 100км по факту! где-то в скрипте есть ошибка! нужно чтобы если расстояние между городами меньше 100 км то var Distance получал вместо 302 км только 30.2 км чтобы оставлято только 2 числа потом ишла точка, гляньте пожалуйста где ошибка в скрипте, спасибо! var waypts = []; var request = { origin: gl_start, destination: gl_end, waypoints: waypts, optimizeWaypoints: true, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); var route = response.routes[0]; // For each route, display summary information. if(route.legs.length==0) alert("Не получилось просчитать расстояние."); for (var i = 0; i < route.legs.length; i++) { var routeSegment = i + 1; //отображаем результаты вычислений jQuery("#calc_result").show(); //отображаем начальный и конечный город jQuery("#start_city").html(document.getElementById("start").value); jQuery("#end_city").html(document.getElementById("end").value); var Distance;//расстояние if(route.legs[i].distance.text.indexOf("мил") != -1 || route.legs[i].distance.text.indexOf("mi") != -1) //если в милях { Distance = 1.609344*parseFloat(route.legs[i].distance.text.replace(/[\t,\D]/g,'')); //расстояние без единицы измерения } else//если в километрах { Distance = parseFloat(route.legs[i].distance.text.replace(/[\t,\D]/g,'')); //расстояние без единицы измерения } Distance = Math.round(Distance*100)/100; //отображаем вычисленное расстояние jQuery("#distance").html(Distance + " км"); |
или же только оставалось 2 числа и все точка не нужна!
|
sergofedor06,
.replace(/[^.\d]/g,'') |
Цитата:
Спасибо, но не помогает! замену сделал, но все остается прежним var Distance;//расстояние if(route.legs[i].distance.text.indexOf("мил") != -1 || route.legs[i].distance.text.indexOf("mi") != -1) //если в милях { Distance = 1.609344*parseFloat(route.legs[i].distance.text.replace(/[^.\d]/g,'')); //расстояние без единицы измерения } else//если в километрах { Distance = parseFloat(route.legs[i].distance.text.replace(/[^.\d]/g,'')); //расстояние без единицы измерения } Distance = Math.round(Distance*100)/100; |
sergofedor06,
делайте макет или напишите значение route.legs[i].distance.text |
надо использовать .toFixed();
например g=(Math.random()*(200-100)+100).toFixed(1); |
Часовой пояс GMT +3, время: 11:10. |