Автор Тема: e=0? (версия 4.13)  (Прочитано 490 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
e=0? (версия 4.13)
« : Июль 03, 2018, 01:50:20 pm »
      if("e"="0")
      print("Как это понимать? Почему англ. e равно нулю?")
      end_if

В 4.12 всё нормально, а в 4.13 англ. е равняется нулю. Мелочь, но всё равно не приятно.

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #1 : Июль 03, 2018, 01:57:05 pm »
Вот же гадство. Они ещё и точке равны:(

dramster

  • Герой форума
  • *****
  • Сообщений: 786
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #2 : Июль 03, 2018, 02:00:57 pm »
http://crapware.aidf.org/forum/index.php?topic=356.msg26603#msg26603

Вот тут почитай, вроде подробно расписано.

Как вариант, попробуй сравнивать хэш строк



Там далее есть еще варианты решения этой проблемы.
http://crapware.aidf.org/forum/index.php?topic=356.msg26605#msg26605
« Последнее редактирование: Июль 03, 2018, 02:07:13 pm от dramster »

dramster

  • Герой форума
  • *****
  • Сообщений: 786
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #3 : Июль 03, 2018, 02:44:15 pm »

В 4.12 всё нормально, а в 4.13 англ. е равняется нулю. Мелочь, но всё равно не приятно.

не знаю что там у тебя за версия.... но просто строка с буквой "е" остается ей. там была проблема с массивами с этой строкой. и вроде в релизной версии все эти проблемы уже пофиксили. максимум что осталось, это запись чисел с этой "Е". типа

print(1E3+2E2+34)     // выйдет 1234
halt


так что качай последнюю версию, и проблем не будет http://crapware.aidf.org/page/clickermann
« Последнее редактирование: Июль 03, 2018, 02:46:56 pm от dramster »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3275
  • Котэ
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #4 : Июль 03, 2018, 02:51:51 pm »
Проверено на v4.13.014 условие не срабатывает.
« Последнее редактирование: Июль 03, 2018, 06:00:17 pm от Oraven »

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #5 : Июль 03, 2018, 03:47:10 pm »
Проверено на v4.12.014 условие не срабатывает.

Ага, именно это я и писал. На 4.12 ведёт себя адекватно, т.е. не срабатывает, а на 4.13 - срабатывает.

В общем, я вернулся к 4.12.

Лучшее - враг хорошему.

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #6 : Июль 03, 2018, 04:15:04 pm »
http://crapware.aidf.org/forum/index.php?topic=356.msg26603#msg26603

Вот тут почитай, вроде подробно расписано.

Как вариант, попробуй сравнивать хэш строк



Там далее есть еще варианты решения этой проблемы.
http://crapware.aidf.org/forum/index.php?topic=356.msg26605#msg26605

Вы немного промазали с сылками. Мне нужно было сюда http://crapware.aidf.org/forum/index.php?topic=2111.0
Забавно, что вы, ранее столкнувшись с проблемой, не смогли понять, что я имею ввиду.*) Ну да не суть.

Что получается, 4.13 была еще в 2017 году? Я начал баловаться с кликером в январе 2018, но последняя версия, которую я тогда смог скачать, была 4.12.
Видимо, по этой причине я пропустил "Обновленный A_KEYSTRING, только для CM v4.13".

dramster

  • Герой форума
  • *****
  • Сообщений: 786
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #7 : Июль 03, 2018, 05:53:03 pm »

Вы немного промазали с сылками. Мне нужно было сюда http://crapware.aidf.org/forum/index.php?topic=2111.0

да, для 4.12, там были проблемы с некоторыми символами, но с буквами вроде все норм было.  а  для версии 4.13 ... там  еще в той что b3, начало 2017г., я даже хз будет ли он работать на релизной версии  :D .

но это не важно, был вопрос по сравнению буквы Е с чем либо. и я сразу вспомнил тот разговор (ссылки выше). где Е с цифрами представленная строкой, в кликере превращалась в цифру. да, прямого сравнения строки с числом или строки со строкой (не переменной или элементом массива) в той теме небыло, тут возможен мой промах  :P .

кстати вот версия 4.13 x32 , та что щяс на оффсайте. как видим, работает верно.




а вот мое начальное понимание твоей проблемы, но компа небыло проверить  :-\, версия 4.12


вобщем, и первое и второе у меня в данный момент работает правильно на последней версии 4.13 x32

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3275
  • Котэ
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #8 : Июль 03, 2018, 06:03:19 pm »
Проверено на v4.12.014 условие не срабатывает.

Ага, именно это я и писал. На 4.12 ведёт себя адекватно, т.е. не срабатывает, а на 4.13 - срабатывает.

В общем, я вернулся к 4.12.

Лучшее - враг хорошему.

Циферкой ошибся  ;D все с 4.13 нормально

Код: Clickermann
  1. if("e"="0")
  2.   print("Да")
  3. else
  4.   print("Нет")
  5. end_if
  6. HALT

Лог:
19:02:10 Нет

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #9 : Июль 03, 2018, 09:18:28 pm »
Дабы не быть голословным, тоже скрин кину. Правда, тут не видно, что это 64-ёх разрядная версия кликера. Сейчас проверю на х32.
« Последнее редактирование: Июль 03, 2018, 09:22:06 pm от Rudeek »

Rudeek

  • Зашел в гости
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #10 : Июль 03, 2018, 09:31:06 pm »
И в х32 тоже не всё идеально. Может проблема на моей стороне.


dramster

  • Герой форума
  • *****
  • Сообщений: 786
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #11 : Июль 03, 2018, 10:03:27 pm »
насчет точки и нуля, соглашусь, всегда с ними были проблемы. возможно в кааких то бетах исправлялось, не помню.

для этого еще в том А_КЕЙСТРИНГЕ который для версии 4.12 есть вот такой кусочек проверки хэша этих символов.
Код: Clickermann
  1.            IF($A_key = 46)
  2.               IF(STRMD5($A_l) ! "5058F1AF8388633F609CADB75A75DC9D")
  3.                  $A_key = 48
  4.               END_IF
  5.            END_IF
с остальными символами проблем не было. хотя, мож еще с чемто и были неполадки, но эти символы нужны постолькупоскольку.
дабы исключить еще какието непонятки в дальнейшем, в А_КЕЙСТРИНГЕ версии 4.13 переделал полностью на сверение хеша символов.

почему так, это я не понимать.
Код: Clickermann
  1. print("e"="0")     //false  0
  2. print("e"=".")     //false  0
  3.  
  4.  
  5. print("."="0")     //true   1
  6. //и даже так
  7. print(char(46) = char(48))   //true   1
  8.  
  9. halt

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 566
    • Просмотр профиля
Re: e=0? (версия 4.13)
« Ответ #12 : Июль 06, 2018, 04:19:44 pm »
тему не читал @ сразу отвечал

e видимо интерпретируется мат.модулем как экспонента, точнее константа которая 2.71. надо допиливать напильником.
точка "." так же пытается быть числом (нулем, 0.0). и это уже из Си, где видимо подобное объявление прокатывало (учитывая количество диалектов хрен там что щас отследил бы и сам Страуструп). опять же надо смотреть

но это все растет из математического модуля. и только
« Последнее редактирование: Июль 06, 2018, 04:25:03 pm от Johnny »