Java에서는 double을 정수로 변환하고 싶습니다.
double x = 1.5;
int y = (int)x;
y = 1을 얻습니다. 이렇게하면 :
int y = (int)Math.round(x);
당신은 2를 얻게 될 것입니다. 그러나 저는 궁금합니다. 정수의 이중 표현이 때때로 1.9999999998 같은 것처럼 보이기 때문에 Math.round ()를 통해 생성 된 double을 캐스팅하면 여전히 잘린 숫자가 될 가능성이 있습니까? 우리가 찾고있는 반올림 된 숫자보다 (즉 : 표시된 코드에서 2 대신 1)?
(예, 그렇습니다. x에 대한 값 이 있습니까? 여기서 y는 x의 반올림 대신 잘린 결과를 표시합니까?)
그렇다면 : 잘림 위험없이 double을 둥근 int로 만드는 더 좋은 방법이 있습니까?
뭔가 생각했습니다 : Math.round (x)는 double이 아닌 long을 반환합니다. 따라서 Math.round ()가 3.9999998과 같은 숫자를 반환하는 것은 불가능합니다. 따라서 int (Math.round ())는 아무것도자를 필요가 없으며 항상 작동합니다.