Как привести double к int в Java, округлив его вниз?
Мне нужно привести double к int в Java, но числовое значение всегда должно округляться. т. е. 99.99999999 -> 99
8 ответов:
приведение к int неявно отбрасывает любое десятичное число. Не надо звонить в математику.этаж () (предполагая положительные числа)
просто введите с помощью (int), например:
System.out.println((int)(99.9999)); // Prints 99это, как говорится, имеет другое поведение от
Math.floorкоторый округляется в сторону отрицательной бесконечности (@Chris Wong)
чтобы привести double к 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.
Math.floor(n)где n-двойник. Это на самом деле вернет двойной, кажется, поэтому убедитесь, что вы набрали его после.
попробуйте с этим, это просто
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может быть, этот код поможет вам.