Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28870
  • Последний: Arsvaarg
Сейчас на форуме
Пользователи: 0
Гостей: 645
Всего: 645

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

Тема: [MS] Работа с дробными числам  (Прочитано 4908 раз)

  • Сообщений: 74
    • Просмотр профиля
0
« : 01 Октября, 2010, 07:01 »
Например необходимо расчитать синус угла в 30 градусов используем оператор (store_sin,":sin",30) При этом в sin занесется 0, т.к. дробная часть просто отрежется - никто не подскажет как это побороть?
« Последнее редактирование: 29 Июня, 2011, 13:18 от Leon473 »
  • Сообщений: 3727
  • За создание технических проектов различного характера За регистрацию на форуме не позже сентября 2008 года Призер конкурса Мастер полигона и текселя
    • Просмотр профиля
0
« Ответ #1 : 01 Октября, 2010, 14:05 »
объясни что за дробные числа ,и зачем они нужны?
«Самая большая проблема для теории эволюции — как возникла жизнь. Поскольку для создания белков нужна РНК, для создания РНК нужна ДНК, а для создания ДНК нужны белки. То есть эта проблема серьёзнее, чем "что возникло раньше — курица или яйцо"».
Джеффри Томкинс, Ph.D. (генетика), Университет Клемсона.
  • Сообщений: 4024
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #2 : 01 Октября, 2010, 15:04 »
вроде никак, не работает модулька с дробями, окружает до целого
и не только в синусах, а и в плюсах-минусах и остальных математических операциях
  • Сообщений: 74
    • Просмотр профиля
+2
« Ответ #3 : 01 Октября, 2010, 16:15 »
Итак - вроде разобрался. В модульке привычных нам дробных чисел как бы нет но иногда надо, например нужно вычислить для примера синус угла в 20 градусов, кулькулятор дает результат 0,342. Соответственно код в модульке
(assign,":ugol",20),     
(assign,":sin",0),
(store_sin,":sin",":ugol"),

по идее должен дать вышеперечисленный результат - но не тут то было он выдаст 0 - т.е. дробная часть просто отрежется.

Соответственно нужно использовать операторы преобразования переменной в число с фиксированной запятой.  При этом указываем  точность преобразования - сколько знаков после запятой.
(assign,":ugol",20),     
(assign,":sin",0),
(set_fixed_point_multiplier, 100), #точность - два знака после запятой
(convert_to_fixed_point, ":ugol"),
(convert_to_fixed_point, ":sin"),
(store_sin,":sin",":ugol"),

В итоге получится число 34. В дальнейшем мы его умножаем на нужное по используемой формуле и в конце не забываем разделить на 100 для того чтобы симулировать умножение на дробь.

Вот в прицепе и все, если кому то инфа будет полезна - я буду рад,  во всяком случае найти ее не смог.
И еще один важный момент - преобразование должно всегда стоять перед синусом, т.к. только мы начинаем умножать переменную или складывать как обычно, то она сразу переходит в другой формат и в итоге опять будет 0.
  • Сообщений: 4024
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #4 : 01 Октября, 2010, 17:20 »
somlich, ты голова! :thumbup:
инфа мега полезная!
я например set_fixed_point_multiplier использовал только для задания координат и до такого применения не додумался

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


зы: есть еще convert_from_fixed_point... очевидно при конвертировании из фиксет_пойнтов обратно получится тот-же ноль =/

[mod= Toxic]Перенёс[/mod]
« Последнее редактирование: 04 Октября, 2010, 17:37 от Toxic »
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #5 : 10 Июня, 2014, 06:07 »
Меня, вот, интересует, что надобно делать с переменной после того, как с ней будут произведены расчёты, результат которых должен иметь дробную часть? Т. е. найдены синус и косинус угла, и что с ними нужно сделать, чтобы использовать в дальнейших расчётах?

Разобрался (просто я сюда ещё и "со своими тараканами").
« Последнее редактирование: 25 Июня, 2014, 03:31 от Дикий-дикий повар »
Без комментариев.

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC