15

假设我想四舍五入floatintin Java
例如,

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

我想打电话Math.ceilMath.round这样做,但java.lang.Math不提供ceil(float)。它只提供ceil(double). 所以 myfloat被提升为double静默,ceil(double)返回doubleround(double)返回long,而我需要四舍五入floatint(not long)。

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

4

1 回答 1

23

你可以做:

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

如果您知道这value是一个浮点数,那么您可以将结果转换回floator int

Java 库提供这两者是没有意义的ceil(float)ceil(double)因为所有浮点参数都可以传递给ceil(double)具有相同结果的方法。

于 2012-06-14T13:05:17.080 回答