在提出问题之前,我想让大家知道,我确实在过去的帖子中看到了一些类似的问题,但应用后,不会完全按预期工作...... 基本上,我想将一个整数向上舍入为 60 的倍数。 举个例子,如果我想要向上舍入的数字是 160 到 60 的倍数,则结果应为 180; (因为在60->120->180中;160比120更接近180); 我的测试代码如下所示:
public static void main (String[] args) {
double a = Math.ceil(160/60)*60;
System.out.println(a);
}
它给出的输出是120.0;而不是 180。
测试代码到底出了什么问题,结果是 120 而不是 180? 我是否错误地使用了 ceil() ?
最佳答案
您正在使用整数除法,这将产生一个整数。因此,正如其他人指出的那样:160/60 返回 2,而不是您期望四舍五入为 3 的 2,66。
public static void main (String[] args) {
double a = Math.ceil((float)160/60)*60;
System.out.println(a);
}
关于java - 上限四舍五入为 60 Java 的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45252229/