Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Проставить точку после двух чисел, например 65.0987 (https://javascript.ru/forum/css-html/64741-prostavit-tochku-posle-dvukh-chisel-naprimer-65-0987-a.html)

sergofedor06 02.09.2016 01:52

Проставить точку после двух чисел, например 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 + " км");

sergofedor06 02.09.2016 01:53

или же только оставалось 2 числа и все точка не нужна!

рони 02.09.2016 07:50

sergofedor06,
.replace(/[^.\d]/g,'')

sergofedor06 02.09.2016 11:06

Цитата:

Сообщение от рони (Сообщение 427448)
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;

рони 02.09.2016 11:34

sergofedor06,
делайте макет или напишите значение route.legs[i].distance.text

gepavlik 22.10.2016 23:40

надо использовать .toFixed();
например
g=(Math.random()*(200-100)+100).toFixed(1);


Часовой пояс GMT +3, время: 11:10.