Как в java округлить до целого числа?
Спасибо. Но все же в дальнейшем этот метод будет проходиться в уроках java или некоторые методы нужно будет самому искать в интернете?
26th Mar 2022, 9:32 PM
Спасибо. Подскажите пожалуйста, я сейчас дошёл до темы ооп. Этот код в даленьйшем будет изучаться? Потому что пока я его в уроках не встречал. А задачи с этим кодом стоят в разделе лёгкие. Заранее спасибо
26th Mar 2022, 9:26 PM
Many thanks
26th Mar 2022, 9:43 PM
Int в джава это и есть целое число
28th Mar 2022, 6:31 PM
Мурат Аккизов
Можешь этот код скопировать и посмотреть public class Program < public static void main(String[] args) < int a = (int) 3.14; System.out.println(a); >> (округляется до 3)
28th Mar 2022, 6:33 PM
Мурат Аккизов
Так если написать 3.6 например он округляет в меньшую сторону хотя должен в большую
28th Mar 2022, 8:38 PM
Чтобы округлить до большего числа есть метод Math.ceil() public class Program < public static void main(String[] args) < double c = Math.ceil(7.342); System.out.println(c); >>
29th Mar 2022, 4:08 AM
Мурат Аккизов
Чтобы округлить до меньшего есть метод Math.floor()
29th Mar 2022, 4:08 AM
Мурат Аккизов
Но учти что округленные значения возвращаются с типом double и если тебе нужен int то придется делать как первом коде который я отправил
29th Mar 2022, 4:09 AM
Мурат Аккизов
А есть метод который сам определяет в какую сторону нужно округлить в большую или меньшую допустим 3.3 в меньшую 3.7 в большую?
29th Mar 2022, 10:53 AM
Я таких ещё не видел
29th Mar 2022, 10:56 AM
Мурат Аккизов
Ок. Это только в java так или во всех языках? А то это не очень удобно думать за машину в какую сторону нужно округлять
29th Mar 2022, 10:57 AM
Often have questions like this?
Learn more efficiently, for free:
Числа с плавающей точкой
Числа с плавающей точкой (или действительные числа) представлены типами float и double. Используются для хранения значений с точностью до определенного знака после десятичной точки.
double — это числа с двойной точностью, максимально приближённые к заданным или полученным в результате вычислений значениям. Используется в Java для любых математических вычислений (квадратный корень, синус, косинус. ).
float — менее точный тип с плавающей точкой. Используется очень редко с целью экономии памяти.
Пример объявления типов с плавающей точкой:
double d1 = 3.45; float f1 = 34.456f;
| Тип | Размер в байтах | Размер в битах | Возможные значения (от..до) | Значение по умолчанию |
|---|---|---|---|---|
| float | 4 | 32 | -3.4E+38..3.4E+38 (стандарт IEEE 754) | 0.0 |
| double | 8 | 64 | -1.7E+308..1.7E+308 (стандарт IEEE 754) | 0.0 |
В языке Java есть три специальных числа плавающей точкой, которые используются для обозначения переполнения и ошибок:
- Положительная бесконечность — результат деления положительного числа на 0. Представлены константами Double.POSITIVE_INFINITY и Float.POSITIVE_INFINITY .
- Отрицательная бесконечность — результат деления отрицательного числа на 0. Представлены константами Double.NEGATIVE_INFINITY и Float.NEGATIVE_INFINITY.
- NaN (не число) — вычисление 0/0 или извлечение квадратного корня из отрицательного числа. Представлены константами Double.NaN и Float.NAN .
Пример использования специальных чисел с плавающей точкой в арифметических выражениях:
public class Main < public static void main(String[] args) < int a = 7; double b = 0.0; double c = -0.0; double g = Double.NEGATIVE_INFINITY; System.out.println(a / b); System.out.println(a / c); System.out.println(b == c); System.out.println(g * 0); >>
Числа с плавающей точкой нельзя использовать в финансовых расчетах, где ошибки округления недопустимы. Например, в результате выполнения оператора System.out. println(2.0 — 1.1) будет выведено значение 0.8999999999999999, а не 0.9, как было бы логично предположить. Подобные ошибки связаны с внутренним двоичным представлением чисел. Как в десятичной системе счисления нельзя точно представить результат деления 1/3, так и в двоичной системе невозможно точно представить результат деления 1/10. Если же требуется исключить ошибки округления, то следует воспользоваться классом BigDecimal .
Презентацию с видео можно скачать на Patreon .
- Пробелы
- Идентификаторы
- Правила именования переменных
- Комментарии
- Разделители
- Ключевые слова
- Примитивные типы данных
- Тип данных char
- Типы byte, short, int, long
- Тип данных boolean
- Литералы
- Методы
- Переменные
- Прямой код и дополнительный код
- Преобразование и приведение примитивных типов
- Ввод с клавиатуры
- Задания
click fraud protection
При работе с математическими вычислениями в Java могут быть случаи, когда разработчику необходимо получить округленное целое число вместо числа с плавающей запятой. Например, округление чисел, содержащих бесконечные десятичные точки, влияет на скорость обработки и также потребляет память. В таких ситуациях «Мат.раунд()” в Java помогает избежать двусмысленности.
В этом блоге будет обсуждаться использование метода Math.round() в Java.
Как использовать метод Java «Math.round ()»?
“Мат.раунд()” используется для округления числа, указанного в качестве его параметра, до ближайшего целого числа в большую или меньшую сторону.
Синтаксис
публичный статический раунд ( плавающий х )
В приведенном выше синтаксисе «Икс” соответствует веществу с плавающей запятой или двойному числу, которое необходимо округлить до ближайшего целого числа.
Пример 1: Использование метода «Math.round()» для округления переменной с плавающей запятой
В этом примере этот метод можно использовать для округления двух одинаковых чисел до соответствующих им ближайших целых чисел:
двойное число1 = 53.65 ;
двойное число2 = 53.25 ;
System.out.println ( «Округленное число:» +Математический раунд ( номер 1 ) ) ;
System.out.println ( «Округленное число:» +Математический раунд ( номер 2 ) ) ;
В приведенном выше фрагменте кода:
-
- Инициализируйте указанные два значения с плавающей запятой.
- После этого примените «Мат.раунд()” для обоих чисел с плавающей запятой, чтобы округлить их до ближайших целых чисел вверх и вниз соответственно.
Выход


В приведенном выше выводе можно наблюдать разницу между двумя округленными одинаковыми числами.
Пример 2: Использование метода «Math.round()» для вычисления положительной и отрицательной бесконечности
В этом конкретном примере обсуждаемый метод может быть применен для возврата максимального и минимального значений длинных переменных:
двойной положительныйInfinity = Double. POSITIVE_INFINITY;
двойное отрицательное бесконечность = двойной. NEGATIVE_INFINITY;
System.out.println ( Мат.раунд ( положительныйБесконечность ) ) ;
System.out.println ( Мат.раунд ( отрицательнаябесконечность ) ) ;В приведенных выше строках кода выполните следующие шаги:
-
- Во-первых, укажите положительные и отрицательные бесконечности соответственно, чтобы их округлить.
- Теперь примените «Мат.раунд()” как для положительной, так и для отрицательной бесконечности, чтобы получить значения максимального и минимального длинных значений соответственно.
Выход


В приведенном выше выводе видно, что при округлении положительных и отрицательных бесконечностей были возвращены крайние значения long, т. е. max и min.
Заключение
“Мат.раунд()” в Java используется для округления числа, указанного в качестве его параметра, до ближайшего целого числа в большую или меньшую сторону. В первом примере его можно использовать для округления указанных чисел с плавающей запятой до ближайшего целого числа. На последней иллюстрации его можно применить для получения максимального и минимального значений long. В этом блоге подробно рассказывается об использовании «Мат.раунд()” в Java.
Как округлить число до двух знаков после запятой (Java)?

Здравствуйте!
Как округлить число до двух знаков на конкретном примере:Спасибо!
- Вопрос задан более трёх лет назад
- 34177 просмотров
Комментировать
Решения вопроса 1
private double round(double number, int scale) < int pow = 10; for (int i = 1; i < scale; i++) pow *= 10; double tmp = number * pow; return (double) (int) ((tmp - (int) tmp) >= 0.5 ? tmp + 1 : tmp) / pow; >Ответ написан более трёх лет назад
Нравится 1 6 комментариев

Klin Klinom @yramarad31 Автор вопроса
Не работает. Или здесь нужно что-то менять? Не понимаю сути вашего решения .
Нет, менять ничего не нужно. Подставляете в первое поле ваше число, во второе необходимую точность. Функция вернет число в заданной точности.
т.е так:
double val = round(5.931, 2);
// val = 5.93
Klin Klinom @yramarad31 Автор вопроса
Не понимаю. Можете написать примерно к моему примеру как делать?
@yramarad31
jLabel5.setText(jLabel5.getText() + round(y, 2));
Klin Klinom @yramarad31 Автор вопроса
А. получилось. Спасибо!
Ответы на вопрос 2