Java 对任意数字进行四舍五入

2022-01-14 00:00:00 math rounding int java

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

I can't seem to find the answer I'm looking for regarding a simple question: how do I round up any number to the nearest int?

例如,只要数字为 0.2、0.7、0.2222、0.4324、0.99999,我希望结果为 1.

For example, whenever the number is 0.2, 0.7, 0.2222, 0.4324, 0.99999 I would want the outcome to be 1.

目前为止

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

不过,它似乎没有做这项工作.

It doesn't seem to be doing the job, though.

推荐答案

Math.ceil() 是要调用的正确函数.我猜 a 是一个 int,它会让 a/100 执行整数运算.改用 Math.ceil(a/100.0).

Math.ceil() is the correct function to call. I'm guessing a is an int, which would make a / 100 perform integer arithmetic. Try Math.ceil(a / 100.0) instead.

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

相关文章