Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 18:57

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 18 янв 2011 14:08 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
В скрипте есть формула - @if $v<$max then @goto %skip1
Читаю Лог - и что я вижу :shock:
IF 219266,39<43486,85 then @goto %skip1
0
и
IF 164110,64<219266,39 then @goto %skip1
0

Я чуть с ума не сошла думая - что и правда 164110,64 больше 219266,39

Пока умные люди подсказали - что попробовать поменять знак в системных настройках - с , на . - и правда получилось! :lol:

Получается что в скриптовом языке не определяет системные настройки для работы :? - а по умолчанию используется только точка.
Тогда
    либо это нужно прописать в инструкции
,
    либо - исправить - чтобы работало с системными настройками

- а то это скрипт на одной машине будет работать, а на другой - зуськи.
Спасибо. :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 07 фев 2011 10:08 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
pippa писал(а):
Получается что в скриптовом языке не определяет системные настройки для работы :? - а по умолчанию используется только точка.

Да. Десятичным разделителем всегда должна быть точка.
Так принято во всех языках программирования.
pippa писал(а):
- а то это скрипт на одной машине будет работать, а на другой - зуськи.
Спасибо.

Да, как раз наоборот.
Например 3.2>3.1 сработает правильно на любой машине, независимо от ее системных настроек.
А 3,2>3,1 не сработает.

Другое дело, откуда именно в вашем скрипте появились запятые. Вы получали в скрипте координаты какой-то функцией?

_________________
Команда разработчиков Digitals
(наш skype, e-mail и телефон находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals | Страница в Facebook


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 08 фев 2011 10:41 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Sergey Oleynik писал(а):
pippa писал(а):
Получается что в скриптовом языке не определяет системные настройки для работы :? - а по умолчанию используется только точка.

Да. Десятичным разделителем всегда должна быть точка.
Так принято во всех языках программирования.
pippa писал(а):
- а то это скрипт на одной машине будет работать, а на другой - зуськи.
Спасибо.

Да, как раз наоборот.
Например 3.2>3.1 сработает правильно на любой машине, независимо от ее системных настроек.
А 3,2>3,1 не сработает.

Другое дело, откуда именно в вашем скрипте появились запятые. Вы получали в скрипте координаты какой-то функцией?

Да просто площади сравнивала :oops: - а площади выдавались с запятыми - смотрите выше выписку из лог файла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 08 фев 2011 11:49 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
pippa писал(а):
Да просто площади сравнивала :oops: - а площади выдавались с запятыми - смотрите выше выписку из лог файла.

Там в выписке как раз не видно откуда взялись значения переменных.
Но на всякий случай мы изменили проверку @If и теперь она понимает и точки и запятые.

_________________
Команда разработчиков Digitals
(наш skype, e-mail и телефон находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals | Страница в Facebook


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 09 фев 2011 06:13 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Sergey Oleynik писал(а):
Но на всякий случай мы изменили проверку @If и теперь она понимает и точки и запятые.

Наскільки я розібрався, можна не турбуватись за розділювач цілої та дробової частини чисел в скриптах (нема різниці чи крапка чи кома), якщо використати @Calc Numeric(). Наприклад:

$Obg=@Map.NextSelected 0
$T1=@Map.Object[$Obg].Point[1]
$T2=@Map.Object[$Obg].Point[2]
$X1=@StringPart 2 $T1
$X2=@StringPart 2 $T2
$X11=@Calc Numeric("$X1")
$X22=@Calc Numeric("$X2")
@If $X22>$X11 then @Break $X2">"$X1
@Dialog.Message $X2"<"$X1

Правильно було б, використовувати @Calc Numeric() скрізь, де в скрипті проводитимуться розрахунки чи логічні операції над дійсними числами (перевірити, чи розділювач в системі крапка чи кома, мабуть можна на початку скрипта).
От, якби можна було б відповідною функцією визначити, змінити (не перевантажуючи для застосування) розділювач в ході виконання скрипта :D , було б толково.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 10 фев 2011 10:31 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
voha писал(а):
От, якби можна було б відповідною функцією визначити, змінити (не перевантажуючи для застосування) розділювач в ході виконання скрипта :D , було б толково.

вот это как раз считаю абсолютно лишним :roll: . То что было описано выше через функцию @Calc - за это гранд мерси. :P


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка разделителя вещественных чисел в скриптах
СообщениеДобавлено: 10 фев 2011 13:14 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Лишнім - так лишнім :D . А що скажете на таку справу Закрити текст скрипта паролем :?: . Просто цікаво знати думку :wink:


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB