Какие знаешь модификаторы для директивы VBA INT

Ответ

В VBA нет модификаторов для функции Int(). Она просто возвращает целую часть числа, отбрасывая дробную:

Dim num As Double
num = 5.9
Debug.Print Int(num) ' Выведет 5

num = -5.9
Debug.Print Int(num) ' Выведет -6 (округляет в меньшую сторону)

Для других вариантов округления используйте:

  • Fix() - аналогично Int, но для отрицательных чисел отбрасывает дробную часть
  • Round() - стандартное математическое округление
  • CInt(), CLng() - преобразуют с округлением до ближайшего целого

Ответ 18+ 🔞

Да ты посмотри на эту функцию Int(), ну просто пиздец какой-то прямолинейный! Никаких там модификаторов, никаких настроек — взяла и отрезала дробную часть, как топором, блядь.

Вот смотри, как она работает, эта манда с ушами:

Dim num As Double
num = 5.9
Debug.Print Int(num) ' Выведет 5

Видишь? 5.9, а на выходе — 5. Дробь — к хуям! В рот меня чих-пых, просто и понятно.

А вот тут начинается цирк, ёпта:

num = -5.9
Debug.Print Int(num) ' Выведет -6 (округляет в меньшую сторону)

Вот это уже забористо! Для отрицательных чисел она не отрезает, а, сука, округляет ВНИЗ, в меньшую сторону. -5.9 становится -6. Подвох, блядь! Чистая математика, но неожиданно.

Так что если тебе нужно не просто отпилить дробь, а что-то более изящное, то держи других артистов, блядь:

  • Fix() — почти как Int, но для отрицательных чисел ведёт себя по-другому (просто отбрасывает дробь, не округляя вниз). Хуй с горы, в общем.
  • Round() — вот это уже классика, стандартное математическое округление, как в школе учили.
  • CInt(), CLng() — эти ребята вообще сначала пытаются округлить до ближайшего целого, а потом ещё и тип поменять. С ними тоже осторожнее, а то охуеешь от результатов.

Короче, выбирай инструмент под задачу, а не тыкайся Int() во всё подряд, как слепой кот в жопу.