W Javie chcę przekonwertować podwójne do liczby całkowitej, wiem, że jeśli to zrobić:podwójna konwersja do liczby całkowitej w java
double x = 1.5;
int y = (int)x;
masz y = 1. Jeśli zrobisz to:
int y = (int)Math.round(x);
Będziesz prawdopodobnie dostać 2. Jednakże zastanawiam się: od podwójne reprezentacje liczb czasami wyglądać 1.9999999998 czy coś, czy istnieje możliwość, że rzucając dwukrotnie utworzony poprzez Math.round() nadal będzie skutkować obciętą liczbą w dół, a nie zaokrągloną liczbą, której szukamy (tj .: 1 zamiast 2 w przedstawionym kodzie)?
(i tak, mam na myśli to, jak takie: Czy jest dowolny wartość dla x, gdzie y pokazać wynik, który jest ścięty, a nie zaokrąglone reprezentacja X?)
Jeśli tak, to: Czy istnieje lepszy sposób na wykonanie podwójnego w zaokrąglone int bez ryzyka obcinania?
Wyobraźmy sobie coś: Math.round (x) zwraca długi, a nie podwójny. Dlatego: Math.round() nie może zwrócić liczby wyglądającej jak 3.9999998. Dlatego int (Math.round()) nigdy nie będzie musiał niczego ciąć i zawsze będzie działał.
Math.round (double) zwraca wartość długą, a nie podwójną. – qbert220