Author Topic: e=0? (версия 4.13)  (Read 4535 times)

0 Members and 1 Guest are viewing this topic.

Rudeek

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
e=0? (версия 4.13)
« on: July 03, 2018, 01:50:20 PM »
      if("e"="0")
      print("Как это понимать? Почему англ. e равно нулю?")
      end_if

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

Rudeek

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: e=0? (версия 4.13)
« Reply #1 on: July 03, 2018, 01:57:05 PM »
Вот же гадство. Они ещё и точке равны:(

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: e=0? (версия 4.13)
« Reply #2 on: July 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
« Last Edit: July 03, 2018, 02:07:13 PM by dramster »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: e=0? (версия 4.13)
« Reply #3 on: July 03, 2018, 02:44:15 PM »

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

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

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


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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: e=0? (версия 4.13)
« Reply #4 on: July 03, 2018, 02:51:51 PM »
Проверено на v4.13.014 условие не срабатывает.
« Last Edit: July 03, 2018, 06:00:17 PM by Oraven »

Rudeek

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: e=0? (версия 4.13)
« Reply #5 on: July 03, 2018, 03:47:10 PM »
Проверено на v4.12.014 условие не срабатывает.

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

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

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

Rudeek

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: e=0? (версия 4.13)
« Reply #6 on: July 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

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: e=0? (версия 4.13)
« Reply #7 on: July 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

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: e=0? (версия 4.13)
« Reply #8 on: July 03, 2018, 06:03:19 PM »
Проверено на v4.12.014 условие не срабатывает.

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

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

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

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

Code: (clickermann) [Select]
if("e"="0")
   print("Да")
else
   print("Нет")
end_if
HALT

Лог:
Code: [Select]
19:02:10 Нет

Rudeek

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

Rudeek

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: e=0? (версия 4.13)
« Reply #10 on: July 03, 2018, 09:31:06 PM »
И в х32 тоже не всё идеально. Может проблема на моей стороне.


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: e=0? (версия 4.13)
« Reply #11 on: July 03, 2018, 10:03:27 PM »
насчет точки и нуля, соглашусь, всегда с ними были проблемы. возможно в кааких то бетах исправлялось, не помню.

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

почему так, это я не понимать.
Code: (clickermann) [Select]
print("e"="0")     //false  0
print("e"=".")     //false  0


print("."="0")     //true   1
//и даже так
print(char(46) = char(48))   //true   1

halt

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: e=0? (версия 4.13)
« Reply #12 on: July 06, 2018, 04:19:44 PM »
тему не читал @ сразу отвечал

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

но это все растет из математического модуля. и только
« Last Edit: July 06, 2018, 04:25:03 PM by Johnny »