Java收集任何数字

我似乎无法find我正在寻找关于一个简单的问题的答案:我如何将任何数字四舍五入到最接近的int

例如,每当数字是0.2,0.7,0.22222,0.44324,0.99999,我想结果是1。

到目前为止,我有

 int b = (int) Math.ceil(a / 100); 

但是,似乎并没有做这项工作。

Math.ceil()是调用的正确函数。 我猜a是一个int ,这将使a / 100执行整数算术。 尝试Math.ceil(a / 100.0)

 int a = 142; System.out.println(a / 100); System.out.println(Math.ceil(a / 100)); System.out.println(a / 100.0); System.out.println(Math.ceil(a / 100.0)); System.out.println((int) Math.ceil(a / 100.0)); 

输出:

 1 1.0 1.42 2.0 2 

请参阅http://ideone.com/yhT0l

我不知道你为什么除以100,但在这里我的假设int a;

 int b = (int) Math.ceil( ((double)a) / 100); 

要么

 int b = (int) Math.ceil( a / 100.0); 
 int RoundedUp = (int) Math.ceil(RandomReal); 

这似乎做了一个完美的工作。 每次工作。

假设一个双精度,我们需要一个舍入的数字,没有小数点。 使用Math.round()函数。
这是我的解决scheme。

 double a = 0.99999; int rounded_a = (int)Math.round(a); System.out.println("a:"+rounded_a ); Output : a:1