2012-06-14 6 views
9

floatintJavaに丸めたいとします。
例えば、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)しか提供しません。私はint(ないlong)にfloatを切り上げる必要がありながら、だから私のfloatceil(double)戻りdoubleround(double)戻りlong、黙っdoubleに昇格されます。

なぜにはceil(double)しかなく、ceil(float)が含まれていないのでしょうか。

+3

私は、あなたの例の数字は浮動小数点ではなく、倍数であることを少し覚えています。 –

答えて

15

あなたは行うことができます。

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

をあなたはvalueがフロートであることを知っているなら、あなたが戻ってfloatまたはintに結果をキャストすることができます。

ceil(float)ceil(double)の両方を提供することは意味がありません。すべての浮動引数を同じ結果でceil(double)メソッドに渡すことができるからです。

+1

+1または 'int intValue =(int)Math.ceil(value);' –

+0

@PeterLawrey:ありがとうございました。質問は確かに 'int'を得ることに関するものです。 –

+0

私は鋳造を避けたいと思います。それは安全に見えません。 – Michael

関連する問題