ProgramingTip

Math.ceil이 왜 double을 반환합니까?

bestdevel 2020. 10. 30. 08:21
반응형

Math.ceil이 왜 double을 반환합니까?


내가 전화 Math.ceil(5.2)하면 반환은 double 6.0. 내 자연 성향은 생각했다를 Math.ceil(double a)반환합니다 long. 문서에서 :

ceil(double a)

double인수보다 작지 않고 수학적 정수와 같은 가장 작은 (음의 무한대에 가장 가까운) 값을 리턴합니다 .

하지만 결과가 정수일 때 a double가 아닌 a를 반환하는 이유 long는 무엇입니까? 그 이유를 이해하면 Java를 좀 더 잘 이해하는 데 도움이 될 것입니다. 그것은 또한 내가 캐스트에 의해 곤경에 자신을 얻을 경우에 저 알아낼 도움이 될 수 있습니다 long.

long b = (long)Math.ceil(a);

항상 내가 생각하는 것은 무엇입니까? 문제가되는 몇 가지 경계 사례가 있습니다.


의 범위가의 범위 double보다 long. 예를 들면 :

double x = Long.MAX_VALUE;
x = x * 1000;
x = Math.ceil(x);

Math.ceil반환 되면 마지막 줄이 무엇을 할 것으로 예상 long합니까?

매우 큰 값 (양수 또는 음수) 숫자가 매우에서는 드물게 분포되므로보다 큰 정수 다음 정수 xx + 1내가 의미하는 바를 알면 오는가 않습니다 .


double은보다 클 수 있습니다 Long.MAX_VALUE. Math.ceil()동일한 값 을 호출 하면 예상됩니다. 그러나 long을 반환하면 값이

참고 URL : https://stackoverflow.com/questions/7287099/why-does-math-ceil-return-a-double

반응형