Округление чисел в Java может зависеть от того, как ваша программа работает с данными и какие правила устанавливаются. В Java есть несколько способов округления чисел:
- Math.round(): Этот метод округляет число до ближайшего целого значения. Если число находится посередине между двумя целыми числами, оно будет округлено к ближайшему четному числу.
 - Math.ceil() и Math.floor(): Math.ceil() округляет число в большую сторону до ближайшего целого значения, а Math.floor() – в меньшую сторону.
 - DecimalFormat: Этот класс позволяет настраивать форматирование чисел, включая округление до нужного количества знаков после запятой или до определенных правил.
 
В Java есть целочисленные типы данных (long, int, char, short, byte) и есть типы с плавающей точкой (float, double), а по-русски — «с плавающей запятой» . Преобразование значений с дробной частью в целочисленные полезно для упрощения вычислений, последующего чтения и для сокращения объемов используемой памяти. Сделать это можно так:
double x = 5.6789;
int y = (int)x;
    
        
            
                Узнай, какие ИТ - профессии
 входят в ТОП-30 с доходом
 от 210 000 ₽/мес
            
            
                
                    
                
                
                    Павел Симонов
                    Исполнительный директор Geekbrains
                
            
            
                Команда GeekBrains совместно с международными специалистами по развитию карьеры
                подготовили материалы, которые помогут вам начать путь к профессии мечты.
            
            
                Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в
                IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее
                будущее!
            
            Скачивайте и используйте уже сегодня:
        
        
            
                
            
            
                Павел Симонов
                Исполнительный директор Geekbrains
            
        
    
    
        
            
                
                
                    Топ-30 самых востребованных и высокооплачиваемых профессий 2023
                    Поможет разобраться в актуальной ситуации на рынке труда
                
            
            
                
                
                    Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
                    Только проверенные нейросети с доступом из России и свободным использованием
                
            
            
                
                
                    ТОП-100 площадок для поиска работы от GeekBrains
                    Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
                
            
        
        
        
            pdf 3,7mb
            doc 1,7mb
        
        
            Уже скачали  35038            
        
    
Однако полученный результат может отличаться от ожидаемого. В частности, в данном случае y будет равно 5, несмотря на то, что по всем правилам округления должно быть 6. Чтобы избежать этой многозначности, можно воспользоваться «дедовским» способом, без привязки к возможностям языка.
i=(int )(n+0.5); // классическое округление
i=(int )(n+1); //округление до большего целого
i=(int )(n);// округление до меньшего целого
Однако данная форма записи имеет множество недостатков, от неправильного результата в частных ситуациях до неудобочитаемой записи в целом. Классический метод округления до целого — round. Допустим, дано число n. Тогда для округления запишем:
int result = (int)Math.round(n);
Скачать
    файл
Если n имеет дробную часть менее 0,5, то число округляется в меньшую сторону, в противном случае — в большую. То есть стандартный математический алгоритм.
Если же вам требуется java округление в меньшую сторону — вместо дополнительной математической операции лучше сразу воспользоваться готовой функций FLOOR:
int result = (int)Math.floor(n);
Java округление в большую сторону выполняется методом CEIL:
int result = (int)Math.ceil(n);
Как и в жизни, округлять можно не только до целого числа, но и до определенного знака после запятой. Как и в первом случае, в java округление до сотых можно сделать чисто математически:
n=n*100;
int result = (int)Math.round(n);
float result2 = (float) result / 100;
    
        
            Дарим скидку от 60%
 на обучение «Программист Java» до 09 ноября        
        
            Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей        
        
            Забронировать скидку
        
    
    
    
Однако запись не слишком удобна, если вам требуется в java округление до плавающего числа знаков с заданным поведением. С помощью методов перечисления RoundingMode() у вас есть такая возможность. Методы следующие:
- UP — округление в сторону большего числа для положительных чисел и меньшего для отрицательных.
 - DOWN — округление в сторону меньшего числа для положительных чисел и большего для отрицательных.
 - CEILING — округление в сторону большего и для положительных, и для отрицательных чисел.
 - FLOOR — округление в сторону меньшего и для положительных, и для отрицательных чисел.
 - HALF_UP — округление в большую сторону в случае числа вида 0.5;
 - HALF_DOWN — округление в меньшую сторону в случае числа вида 0.5;
 - HALF_EVEN — классическое округление
 
            ТОП-100 площадок для поиска работы от GeekBrains
        
            20 профессий 2023 года, с доходом от 150 000 рублей
        
            Чек-лист «Как успешно пройти собеседование»
        Выглядит подобное округление чисел так:
result1 = result.setScale(2, RoundingMode.HALF_UP);
Цифра в скобках указывает в java округление до 2 знаков double типа.
Специальные методы округления java позволяют разработчику решить любую задачу, не прибегая к грубым мультиязычным способам, содержащим ограничения и ошибки.