Как применить двойную к int в Java, округляя ее?

Мне нужно включить double в int в Java, но числовое значение должно всегда округляться. то есть 99,99999999 → 99

Ответ 1

Приведение к int неявно отбрасывает любое десятичное число. Не нужно вызывать Math.floor() (при условии положительных чисел)

Просто typecast с (int), например:

System.out.println((int)(99.9999)); // Prints 99

Говоря это, оно имеет другое поведение от Math.floor, которое округляется к отрицательной бесконечности (@Chris Wong)

Ответ 2

Чтобы применить двойное к int и округлить его до ближайшего целого числа (т.е. в отличие от типичных (int)(1.8) и (int)(1.2), которые будут округлены до 0 и возвращаются 1), просто добавьте 0,5 к double, который вы будете приводить к int.

Например, если мы имеем

double a = 1.2;
double b = 1.8;

Затем следующие выражения приведения типов для x и y и возвращают округленные значения (x = 1 и y = 1):

int x = (int)(a);   // This equals (int)(1.2) --> 1
int y = (int)(b);   // This equals (int)(1.8) --> 1

Но добавив 0.5 к каждому, мы получим результат округленный-ближайший целочисленный, который мы можем желать в некоторых случаях (x = 1 и y = 2):

int x = (int)(a + 0.5);   // This equals (int)(1.8) --> 1
int y = (int)(b + 0.5);   // This equals (int)(2.3) --> 2

В качестве небольшого примечания этот метод также позволяет вам контролировать порог, при котором double округляется вверх или вниз при тискании (int).

(int)(a + 0.8);

для типа. Это будет округлено до (int)a + 1, если десятичные значения больше или равны 0,2. То есть, добавив 0,8 к double непосредственно перед приведением типов, 10,15 и 10,03 будут округлены до 10 при (int) типедизации, но 10.23 и 10.7 будут округлены до 11.

Ответ 3

(целое) 99,99999

Будет 99. Приведение двойного к int не округляет, оно отбрасывает часть дроби.

Ответ 4

Math.floor(n)

где n - двойное. Кажется, это будет возвращать двойной, поэтому убедитесь, что вы его выведете после.

Ответ 5

Это прекрасно работает int i = (int) dbl;

Ответ 6

new Double(99.9999).intValue()

Ответ 7

попробуйте с этим, это просто

double x= 20.22889909008;
int a = (int) x;

this will return a=20

или попробуйте с этим: -

Double x = 20.22889909008;
Integer a = x.intValue();

this will return a=20

или попробуйте с этим: -

double x= 20.22889909008;
System.out.println("===="+(int)x);

this will return ===20

может быть этот код поможет вам.

Ответ 8

Попробуйте использовать Math.floor.

Ответ 9

В этом вопросе:

1. Преобразование двойного числа в целое - очень простая задача.

2.Но не округляя двойное значение до ближайшего десятичного числа. Поэтому кастинг можно сделать так:

double d=99.99999999;
int i=(int)d;
System.out.println(i);

и он напечатает 99, но округление не было сделано.

Таким образом, для округления мы можем использовать,

double d=99.99999999;
System.out.println( Math.round(d));

Это напечатает вывод 100.

Ответ 10

Private static DecimalFormat input =new DecimalFormat() ;

System.out.println("" +input.format("%.2f",inputvalue);

)