Как в варкрафте округлять числа до нужного знака, например было 90.234 а надо 90.2

Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
`
ОЖИДАНИЕ РЕКЛАМЫ...
8
Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
Принятый ответ
8
pAxsIs:
Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
На jass; эта функция стандартная? Просто я использую автоподсказку при нажатии, и ни разу не видел этой функции
8
Poma:
pAxsIs:
Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
На jass; эта функция стандартная? Просто я использую автоподсказку при нажатии, и ни разу не видел этой функции
Да, стандартная, описанная в common.j.
Загруженные файлы
26
Если не путаю, то она не округляет, а отбрасывает цифры после указанного места. Для реального округления, например, дроби до целого, надо ещё 0.5 прибавить.
8
8gabriel8:
Если не путаю, то она не округляет, а отбрасывает цифры после указанного места. Для реального округления, например, дроби до целого, надо ещё 0.5 прибавить.
Все верно, отбрасывает. Находит в строке символ '.', и отбрасывает символы после заданного пользователем количества символов.
По сути то, что я описал, работает как функция ceil, а ваш вариант работает как round. Также можно еще добавлять не 0.5, а 1.0, тогда будет работать как floor.
28
Все верно, отбрасывает.
Нет, она округляет (математический метод), проверял несколько раз.
Например, R2SW(1. / 1024., 0, 9) вернёт 0.000976563.

В R2SW второй аргумент определяет длину получаемой строки, если кол-во знаков полученном числе меньше переданного аргумента, перед числом появляются пробелы дополняющие до нужного размера. Третий можно задать в пределах от -1 до 9, числа меньше -1 дают тоже, что и -1, а числа больше 9 дают ответ как при 9. При 0 число округляется до целого. При -1 число округляется только если знаков после запятой больше 6.

Так что можно использовать следующую функцию для округления.
function RoundMath takes real r, integer point return real
    // point <= -1 -- округлит до 6-го знака после запятой
    // point == 0 -- округлит до целого, но будет 0 после запятой
    // point => 9 -- округлит до 9-го знака после запятой
    return S2R(R2SW(r, 0, point))
endfunction
8
PT153:
Нет, она округляет (математический метод), проверял несколько раз.
Например, R2SW(1. / 1024., 0, 9) вернёт 0.000976563.
Да, действительно. Что-то ответ 8gabriel8 сбил меня с толку.
Перепутал R2SW с принципом работы I2R(R2I(A)), где нужно (умножать на 10^N, чтобы получить N количество знаков после запятой) и как раз добавлять 0.5 или 1.0
Чтобы оставить комментарий, пожалуйста, войдите на сайт.