1

Тема: AHK: Убрать остаток

Здраствуйте! Есть ли команда в AHK (Скорее всего есть просто я криво посмотрел ) что бы убрать остаток, к пример 123.456 после команды будет только 123?
Заранее спасибо за ответы!

2

Re: AHK: Убрать остаток

Есть, и вам уже её давали в прошлой вашей теме.

3

Re: AHK: Убрать остаток

msgbox, % 1234.99 // 1

или

Var := 1234.99
Var //= 1
msgbox, % Var

4

Re: AHK: Убрать остаток

ypppu
Прикольный способ, но нули после запятой немного напрягают.

5

Re: AHK: Убрать остаток

YMP в прошлой теме был разговор насчет округления вообще, а мне надо просто убрать остаток, без округления.

6

Re: AHK: Убрать остаток

Хотя в принципе можно просто сделать округление в минус и ответ будет один и тот же в общем то.

7

Re: AHK: Убрать остаток

Нет, тема была как раз про отбрасывание дробной части.

8

Re: AHK: Убрать остаток

Какое ещё "округление в минус"? Если речь про Floor(Number), то это кругление до ближайшего целого числа в меньшую строну. При работе с отрицательными числами это не то же самое, что отбрасывание дробной части.

9

Re: AHK: Убрать остаток

Да, с отрицательными не то же. Там надо Ceil(Number).


MsgBox, % Trunc(12.333) " " Trunc(-12.333)

Trunc(n)
{
	Return n < 0 ? Ceil(n) : Floor(n)
}

10

Re: AHK: Убрать остаток

Кстати с целочисленным делением неправильно. Округляет.

msgbox, % -1234.99 // 1

Вот ещё вариант с вычитанием дробной части.

var := -1234.99
msgbox, % var - Mod(var, 1)

11 (изменено: Godarck, 2016-06-06 22:57:57)

Re: AHK: Убрать остаток

StringSplit, Var, Var,.
var := var1

в var1 хранится левая часть, в var2 правая