Тема: AHK: Математические действия
Здравстуйте разработчики и любители.
Возможно ли сделать с помощью AHK такие действия.
Пример
(39,849/43,306)*500
В справках смотрел и ничего про разделить или умножить не нашел(
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравстуйте разработчики и любители.
Возможно ли сделать с помощью AHK такие действия.
Пример
(39,849/43,306)*500
В справках смотрел и ничего про разделить или умножить не нашел(
Какие это такие действия?
MsgBox % (39,849/43,306)*500
Какие это такие действия?
MsgBox % (39,849/43,306)*500
Msgbox = 19500
результат должен быть 460,08
Читайте здесь.
Я вас не понял...
результат должен быть 460,08
Не заметил запятые:
MsgBox % (39.849/43.306)*500
Как и вы ошибку в слове:
Матаматические
Я вас не понял...
результат должен быть 460,08
Не заметил запятые:
MsgBox % (39.849/43.306)*500
Как и вы ошибку в слове:
Матаматические
Извиняюсь, исправил.
Спасибо огромное ! Хоть я и не понял как но работает.
В справке такого нету(
Да и есче вопрос как сократить с 460,086362 к 460,08 ?
n := (39.849/43.306)*500
MsgBox % Round(n, 2) ; округлить
MsgBox % SubStr(n, 1, InStr(n, ".")+2) ; отрезать
Не используйте MsgBox, сохраняйте результат в переменную как:
n := (39.849/43.306)*500
Огромнейшее спасибо !!!
А с переменными вместо чисел как реализовать подскажите пожалуйста.
a := 39.849
b := 43.306
c := 500
n := Round((a/b)*c, 2)
MsgBox % n
MsgBox % SubStr(n, 1, InStr(n, ".")+2) ; отрезать
Этот пример не корректен, правильнее так:
n := 460.086362
MsgBox % RegExReplace(n, "(\d+)(\.\d{2}).*", "$1$2")
Спасибо большое за помощь !
Почему не так:
n := 460.086362
MsgBox % RegExReplace(n, "(\d+\.\d{2}).*", "$1")
Да не знаю, что в голову пришло. А в чём большая правильность?
И как-то можно это сделать с помощью функции Format?
Просто создаётся один подшаблон вместо двух. Через Format() удаётся только округлить:
n := 460.086362
MsgBox, % Format("{:.2f}", n)
Если математикой и без условий, то можно ещё так отрезать.
x := 2 ; знаков после запятой
n := 1.999999
MsgBox % Round(((#:=n*10**x)-mod(#,1))*10**-x,x)
Тоже такое придумал, но решил, что нерационально как-то.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться