Ответ
В 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() во всё подряд, как слепой кот в жопу.