将一个浮点数整数到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); }