java - 将整数的最后一位四舍五入

标签 java int rounding

我必须输入一个数字并将最后一位四舍五入为 0 或 5。

  1. 从 0,1,2 到 0,例如 12 -> 10
  2. 从 3、4、5、6、7 到 5,比如 37 -> 35
  3. 然后从 8、9、0 到 0,再次像 59 -> 60

我试过 Math.ceilMath.floor 但它们不起作用。

最佳答案

Math.ceilMath.floor 用于 float (如 Double)。没有你想做的内置函数,但这应该可以工作

public static int round(int original) {
    if original % 10 <= 2 {
        return original - (original % 10)
    } else if original % 10 <= 7 {
        return original - (original % 10) + 5
    }
    return original - (original % 10) + 10
}

如果你想让它处理负数,使用这个:

public static int round(int original) {
    if original % 10 <= 2 {
        return original - (original % 10)
    } else if original % 10 <= 7 {
        return original - (original % 10) + 5
    } else if original % 10 <= 9 {
        return original - (original % 10) + 10
    } else if original % 10 >= -2 {
        return original - (original % 10)
    } else if original % 10 >= -7 {
        return original - (original % 10) - 5
    }
    return original - (original % 10) - 10
}

显然,您不能只是复制和粘贴这段代码,因为您需要将它放在一个类中,并且可能会更改可见性和 staticness(public static) 部分。

要使用它,请调用 int rounded = round(input)

希望这对您有所帮助!

关于java - 将整数的最后一位四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234546/

相关文章:

java - ConcurrentHashMap put 与 putIfAbsent

php - 在 PHP 中使用 long int

java - java中的四舍五入价格数字

java - 四舍五入到一个小数位不起作用。

mysql - 公式扩展域和四舍五入搞不明白

java - 如何模拟 Unirest 链接方法?

java - MVC 模式中自动调用重复值和一些方法

java - 可以在控制台应用程序中将 Thread.sleep 用作计时器吗?

c++ - 浮点运算的最佳实践

python - 将整数转换为二进制,然后在 python 中进行左移