2012-06-14 3 views
9

float에서 int까지를 Java에 모으고 싶다고 가정 해 보겠습니다.
예를 들어,Java에서 ceil (float)이없는 이유는 무엇입니까?

roundUp(0.2) = 1 
roundUp(0.7) = 1 
roundUp(1.3) = 2 
... 

나는 그렇게 Math.ceilMath.round 전화하고 싶지만 ceil(float)java.lang.Math 제공하지 않습니다. 그것은 ceil(double)만을 제공합니다. 그래서 내 floatdouble로 승격 자동, ceil(double) 반환 doubleround(double) 반환 long I가 floatint (안 long)로 반올림 할 필요가있다.

지금 java.lang.Math에는 ceil(double) 만 있고 ceil(float)이없는 이유가 궁금합니다.

+3

예를 들어 숫자가 두 배로 부동 소수점 숫자로 표시됩니다. –

답변

15

당신은 할 수 있습니다 :

value = (int) Math.ceil(value); 

당신이 value은 다음 float 또는 int 다시 결과를 캐스팅 할 수있는 플로트 것을 알고있는 경우

.

모든 float 인수는 ceil(double) 메소드로 전달 될 수 있으므로 동일한 결과로 Java 라이브러리가 ceil(float)ceil(double)을 제공하는 것은 의미가 없습니다.

+1

+1 또는'int intValue = (int) Math.ceil (value); ' –

+0

@ PeterLawrey : 고마워, 나는 질문이 실제로'int '를 얻는 것에 관한 답을 업데이트했다. –

+0

나는 주물을 피하고 싶습니다. 그것은 안전 해 보이지 않습니다. – Michael

관련 문제