Форум

Уведомления
Очистить все

[MS] Работа с дробными числам

 
Джеки Чан
Известный участник Модератор Гильдия переводчиков

В модульке привычных нам дробных чисел как бы нет но иногда надо, например нужно вычислить для примера синус угла в 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 для того чтобы симулировать умножение на дробь.

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

ОтветитьЦитата
Автор темы Размещено : 26.01.2022 10:46

Оставьте ответ

Имя автора

Электронная почта автора

Заголовок *

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Политика конфиденциальности