Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2016, 01:52
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

Проставить точку после двух чисел, например 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 (permalink)  
Старый 02.09.2016, 01:53
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

или же только оставалось 2 числа и все точка не нужна!
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2016, 07:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

sergofedor06,
.replace(/[^.\d]/g,'')
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2016, 11:06
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

Сообщение от рони Посмотреть сообщение
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;
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2016, 11:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

sergofedor06,
делайте макет или напишите значение route.legs[i].distance.text
Ответить с цитированием
  #6 (permalink)  
Старый 22.10.2016, 23:40
Интересующийся
Отправить личное сообщение для gepavlik Посмотреть профиль Найти все сообщения от gepavlik
 
Регистрация: 22.10.2016
Сообщений: 16

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
складывае двух чисел и вывод их в html rusVolk Мобильный JavaScript 11 14.01.2016 21:31
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Ошибка при сложении двух чисел SER Events/DOM/Window 2 20.12.2012 08:35
Обрезание до двух знаков после запятой vladimircape Общие вопросы Javascript 4 16.10.2012 22:13