Материал из Скретч Вики
Блок Округлить () – блок оператор и блок репортёр. Этот блок округляет заданное значение до ближайшего целого. Подчиняется правилам округления; при округлении числа с десятичной частью больше 5, включительно, блок отдаст число, больше заданного. При округлении числа с десятичной частью меньше 5.
округлить()
Пример использования
В проектах, где используются десятичные значения, эти числа могут быть округлены.
Варианты использования блока Округление ():
если <(округлить(a/b))=(a/b)>, то сказать [a делится на b] иначе сказать [a не делится на b]
- Калькулятор может использовать округление
- Проверка примерного равенства чисел
- Проверка деления чисел друг на друга, хотя для этой цели более предназначен блок Остаток от деления () на ().
- Округление чисел для блока Повторить () раз (блок), потому что этот блок использует только целые числа
- Определение позиции курсора, например, для игры Сапёр
- Привязка к сетке
если <(округлить ((a)/(b)))=((a)/(b))>, то сказать[a делится на b] иначе сказать[a не делится на b]
Получение идентичного эффекта
- Основная статья: Список идентичных блоков
Можно использовать в () больше () (блок) и () меньше () (блок) для примерного округления:
([целое меньшее v] от ((число) + (0.5)))
Также () больше () и () меньше () могут быль заменены блоком Остаток от деления () на ():
((число) - ((1) - ((число) mod (1)))) ((число) - ((1) + ((число) mod (1))))
или:
если <(b) > (0)>, то задать [округление v] значение ((n + 0.5) - ((n - 0.5) mod (1))) иначе задать [округление v] значение ((n - 0.5) - ((n 0.5) - (((n - 0.5) mod (1)) + (1)))
Также можно использовать операторы Буква () в () (блок) и Объединить () и () (блок) :
задать [репортёр v] значение () задать [значение v] значение (1) повторять пока не < <(буква (значение) в (число)) = (0)> или <(значение) = (длина (число))> > задать [репортёр v] значение (объединить (репортёр) (буква (значение) в (число))) изменить [значение v] на (1) если <<(буква (значение) в (число)) = (.)> и <(буква ((значение) + (1)) в (число)) > (4)>>, то изменить [репортёр v] на (1)
Предложения от Скретчеров
Некоторые скретчеры хотят, чтобы этот блок мог округлять до определённого разряда. Это выглядело бы так:
(округлить () до ()::operators)
Такого, к сожалению, до сих пор нет, поэтому это можно заменить на это:
округлить (( ()*([10^ v] от ()::operators )) / ([10^ v] от ()::operators)
Блоки | ||||||||||||||||||
|