为什么Java中没有ceil(float)?

Mic*_*ael 13 java floating-point integer

假设我float想要int进入Java.
例如,

roundUp(0.2) = 1
roundUp(0.7) = 1
roundUp(1.3) = 2
...
Run Code Online (Sandbox Code Playgroud)

我想打电话Math.ceil,并Math.round要做到这一点,但java.lang.Math不提供ceil(float).它仅提供ceil(double).所以我float被提升为double默默,ceil(double)返回doubleround(double)返回,long而我需要向上舍floatint(而不是long).

现在我想知道为什么java.lang.Math只有ceil(double)和没有ceil(float).

Sim*_*ser 19

你可以做:

value = (int) Math.ceil(value);
Run Code Online (Sandbox Code Playgroud)

如果你知道它value是一个浮点数,那么你可以将结果转换回floatint.

Java库提供这两者ceil(float)并没有任何意义,ceil(double)因为所有float参数都可以传递给ceil(double)具有相同结果的方法.

  • 我的意思是,如果`ceil(float)`返回`float`,我会调用`round(float)`来获得任何转换的`int`:例如`round(ceil(0.3f))` (2认同)