Тема: AHK: Округление в минус.
Здравствуйте форумчане!
У меня возник вопрос, как сделать округление в минус? То есть если значение переменной 1 = 12.9
то он округлит её до 12 а не до 13.
Заранее спасибо за ответы!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте форумчане!
У меня возник вопрос, как сделать округление в минус? То есть если значение переменной 1 = 12.9
то он округлит её до 12 а не до 13.
Заранее спасибо за ответы!
Или может можно получить остаток и потом его отминусовать от числа?
n := Floor(12.9)
MsgBox, %n%
n := Floor(12.9)
MsgBox, %n%
Попробовал, 14.8 округляет все равно до 15.
4Окей. А как округлить в плюс? К примеру 1.2 что бы было 2
n := 14.8
MsgBox, % Floor(n)
n := 1.2
MsgBox, % Ceil(n)
Numpad4::
3 = 16
2 := 138
2/=10
Ceil(%2%)
3-=%2%
Sendinput {F6}/usedrugs %3%{Enter}
returnПосле такого скрипта перменная 3 становится 3, а мне в общем то надо 2...
Переменные, состоящие из одних цифр, используются только как параметры, передаваемые скрипту, в остальных случаях использовать не нужно.
Переменные, состоящие из одних цифр, используются только как параметры, передаваемые скрипту, в остальных случаях использовать не нужно.
К сожалению не знаю как написать скрипт без них.
Alex_Lexon, ознакомьтесь с этой темой, отредактируйте свой пост.
teadrinker Выполнено!
Также не нужно цитировать предыдущий пост полностью. Для скриптов используйте буквенные или буквенно-цифровые переменные: MyVar, x, y, Var1 и т. п.
teadrinker а что, есть разница?
Используя чисто числовые переменные могут возникнуть проблемы с передачей в функции. Еще использовать имя переменной как одну цифру может вызвать путаницу в прочтении кода, особенно если еще использовать математические действия.
1 = Из_скрипта
msgbox %1% %2%Без передачи параметров, текст окна будет такой:
Самый простой способ передать сюда параметры, это создать ярлык и в свойствах указать эти параметры:
Вот так будет выглядеть окно:
Параметр1 было уже в скрипте установлено новое значение.
Что бы так же не было путаницы, желательно в свою переменную заносить передаваемые параметры. Например:
Param1 = %1%
После такого скрипта перменная 3 становится 3, а мне в общем то надо 2...
У переменной под названием 3 значение равно 16.
У переменной под названием 2 Значение 138.
Устанавливаем то что во второй переменной значение должно поделится на 10(Но этот оператор работает немного неправильно, но подходит к этому случаю. в англ справке это сказано.[кликабельно] Так как число не с плавающей точкой, то оператор сам округляет до минимально возможного числа) - Получаем число 13
Ceil тут вообще не работает, тут допущены 3 ошибки.
Так как в переменной по имени 3 значение 16, а в переменной 2 значение 13 получаем 16 - 13 = 3
3 = 16
2 := 138
2/=10
Ceil(%2%)
3-=%2%
1) Значение никуда не заносится, просто уходит в пустоту. Нужно перед началом подставлять имя переменной и оператор :=.
2) Указав %% в функции это значит что имя переменной должно взяться из другой переменной.Пример:
var = 123
VarParent = var
fn(%VarParent%)
fn(v)
{
msgbox % v
}3) Если указать без процентов скрипт посчитает это не как переменную а как простое число, если указать правильное имя переменной, то это сработает:
var := 123 / 10
varNew:= Ceil(var)
msgbox % varNewВот как будет правильно используя не цифровые имена переменных и с правильным ceil
var1 := 16
var2 := 138
var2 := Ceil(var2 / 10)
var1 -= var2
msgbox % var1Так же результат вычитания можно выводить в 3ю переменную:
(вместо предпоследней строки)
var3 := var1- var2Не помогло.
Ну, не только прочитать нужно было, ещё и выводы сделать. Вот в предыдущем посте есть разъяснения, почитайте тоже. Если не помогает, приведите свой вариант, который не работает.
yalanne спасибо, помогло. Видимо использовал Ceil неправильно. Тему можно закрывать.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться