Как округлить число в java
Перейти к содержимому

Как округлить число в java

  • автор:

Как в 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)?

      4182c9cd7c243c503475109167066c25705197f1

      Здравствуйте!
      Как округлить число до двух знаков на конкретном примере:

      Спасибо!

      • Вопрос задан более трёх лет назад
      • 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 комментариев

      yramarad31

      Klin Klinom @yramarad31 Автор вопроса

      Не работает. Или здесь нужно что-то менять? Не понимаю сути вашего решения .

      Нет, менять ничего не нужно. Подставляете в первое поле ваше число, во второе необходимую точность. Функция вернет число в заданной точности.

      т.е так:
      double val = round(5.931, 2);
      // val = 5.93

      yramarad31

      Klin Klinom @yramarad31 Автор вопроса

      Не понимаю. Можете написать примерно к моему примеру как делать?

      @yramarad31
      jLabel5.setText(jLabel5.getText() + round(y, 2));

      yramarad31

      Klin Klinom @yramarad31 Автор вопроса

      А. получилось. Спасибо!

      Ответы на вопрос 2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *