Ste*_*cus 136 java math int rounding
我似乎无法找到一个关于一个简单问题的答案:如何将任何数字四舍五入到最近int?
例如,每当数字为0.2,0.7,0.2222,0.4324,0.9999时,我希望结果为1.
到目前为止我有
int b = (int) Math.ceil(a / 100);
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有完成这项工作.
mar*_*cog 267
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));
Run Code Online (Sandbox Code Playgroud)
输出:
1
1.0
1.42
2.0
2
Run Code Online (Sandbox Code Playgroud)
小智 15
我不知道你为什么要除以100,但这是我的假设 int a;
int b = (int) Math.ceil( ((double)a) / 100);
Run Code Online (Sandbox Code Playgroud)
要么
int b = (int) Math.ceil( a / 100.0);
Run Code Online (Sandbox Code Playgroud)
小智 11
int RoundedUp = (int) Math.ceil(RandomReal);
Run Code Online (Sandbox Code Playgroud)
这似乎做得很好.每次都工作.
10 年后,这个问题仍然困扰着我。
所以这是对那些为时已晚的人的答案。
这不起作用
int b = (int) Math.ceil(a / 100);
Run Code Online (Sandbox Code Playgroud)
因为结果结果a / 100是一个整数并且它被四舍五入所以 Math.ceil 不能做任何事情。
您必须避免使用此四舍五入操作
int b = (int) Math.ceil((float) a / 100);
Run Code Online (Sandbox Code Playgroud)
现在它起作用了。