将一个浮点数整数到java中的下一个整数值

我怎么能四舍五入浮点数到Java中的下一个整数值? 假设

2.1 – > 3

3.001 – > 4

4.5 – > 5

7.9 – > 8

你应该看看Java的math包中的上限:Math.ceil


编辑:添加Math.ceil的javadoc。 在math中读取所有的方法可能是值得的。

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#ceil%28double%29

public static double ceil(double a)

返回大于或等于参数的最小(最接近负无穷大)的double值,等于一个math整数。 特别案例:

  • 如果参数值已经等于math整数,则结果与参数相同。
  • 如果参数是NaN或无穷大或正零或负零,则结果与参数相同。
  • 如果参数值小于零但大于-1.0,则结果为负零。

请注意, Math.ceil(x)的值恰恰是-Math.floor(-x)的值。

尝试这个

 float a = 4.5f; int d = (int) Math.ceil(a); System.out.println(d); 

我有同样的问题,我仍然得到较小的整数值。 这是师,而不是Math.ceil。 您必须添加(浮动)投入到整数。 这是我如何解决它:

 int totalNumberOfCachedData = 201; int DataCountMax = 200; float ceil =(float) totalNumberOfCachedData / (float)DataCountMax; int roundInt = (int) Math.ceil(ceil); 

这会给我2的roundInt的价值。

看到

 float a=10.34f,b=45.678f; System.out.println((int)Math.ceil(a)); System.out.println((int)Math.ceil(b)); 

产量

 11 46 

我正在使用这个:

 public static int roundDoubleToUpperInt(double d){ return (d%1==0.0f)?(int)d:(int)(d+1); }