java - 上限四舍五入为 60 Java 的倍数

标签 java rounding ceil

在提出问题之前,我想让大家知道,我确实在过去的帖子中看到了一些类似的问题,但应用后,不会完全按预期工作...... 基本上,我想将一个整数向上舍入为 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/

相关文章:

java - 如何从此 JAVA 文件中提取 Delphi 类以用于 Android?

java - Microsoft SQL Server JDBC 驱动程序 -SSL 问题

java - 带有 DecimalFormat 的 RoundingMode.UP 无法按预期工作

java - 以编程方式将按钮添加到 MapFragment/GoogleMap

Java:两个具有几乎相同方法的类,使用两个不同的枚举;有可能避免冗余吗? (无处不在的静态方法)

objective-c - 四舍五入 NSDecimalNumber

rounding - Stata:舍入不正确?

jsp - JSTL/EL 中数字的上限

mysql - 如何根据小数的值将小数四舍五入为整数?

r - R 中日期的定制地板/天花板