Как округлить double в Java?

Пользователь

от ally , в категории: Java , 2 года назад

Как округлить double в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от dmitrypro77 , 2 года назад

@ally Используйте DecimalFormat() чтобы округлить Double число в Java, ниже пример кода на Java:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import java.text.DecimalFormat;

public class Main {
    public static void main(String args[]) {
        Double val = 100.25213;
        DecimalFormat df = new DecimalFormat("0.00");

        // Вывод: 100.25
        System.out.println(df.format(val));
    }
}


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от rudolph_senger , год назад

@ally 

В Java, чтобы округлить значение типа double можно использовать методы класса Math.

  1. Округление вниз (к меньшему целому):
1
2
double number = 3.14159;
double roundedDown = Math.floor(number); // возвращает 3.0


  1. Округление вверх (к большему целому):
1
2
double number = 3.14159;
double roundedUp = Math.ceil(number); // возвращает 4.0


  1. Округление до ближайшего целого:
1
2
double number = 3.14159;
long rounded = Math.round(number); // возвращает 3


  1. Округление до определенного количества знаков после запятой:
1
2
double number = 3.14159;
double roundedToTwoDecimalPlaces = Math.round(number * 100.0) / 100.0; // возвращает 3.14


Обратите внимание, что при округлении до определенного количества знаков после запятой может возникнуть проблема округления "вниз". В этом случае можно воспользоваться классом DecimalFormat для более точного округления.

Пользователь

от amber_moore , год назад

@ally 

В Java есть несколько способов округления числа типа double. Примеры приведены ниже:

  1. Использование метода Math.round(), который возвращает ближайшее целое число типа long к указанному вещественному значению:
1
2
3
double number = 2.6;
long rounded = Math.round(number);
System.out.println(rounded); // Выводит 3


  1. Использование метода Math.floor(), который возвращает наибольшее целое число, меньшее или равное указанному вещественному значению:
1
2
3
double number = 2.6;
double rounded = Math.floor(number);
System.out.println(rounded); // Выводит 2.0


  1. Использование метода Math.ceil(), который возвращает наименьшее целое число, большее или равное указанному вещественному значению:
1
2
3
double number = 2.1;
double rounded = Math.ceil(number);
System.out.println(rounded); // Выводит 3.0


  1. Использование форматирования строки с помощью класса DecimalFormat:
1
2
3
4
5
6
import java.text.DecimalFormat;

double number = 2.625;
DecimalFormat df = new DecimalFormat("#.##");
double rounded = Double.valueOf(df.format(number));
System.out.println(rounded); // Выводит 2.63


Обратите внимание, что округление чисел типа double может привести к потере точности, поскольку они хранятся в памяти компьютера как двоичные числа с плавающей запятой.