java - 检查参数时舍入

标签 java rounding

我设法能够检查输入并判断它是否是 int,并重新询问用户是否不是。 不过,我想添加一个检查,通过四舍五入将 double 转换为整数。我尝试了 Math.round 方法,但无法让任何东西正常工作。

public static int getInteger(String prompt)
{
    int input = 0;
    Scanner user_input = new Scanner( System.in );
    System.out.print("Enter a integer: ");

    while (!user_input.hasNextInt()) { 
        System.out.println("Is not a valid number.");
        user_input.next(); 
    }


    return input;
}

如果有人能告诉我怎么做,那就太好了,干杯。

最佳答案

public static int getInteger()
{
    int input = 0;
    Scanner user_input = new Scanner( System.in );
    System.out.print("Enter a integer: ");

    while (!user_input.hasNextInt() && !user_input.hasNextDouble()) {
        System.out.println("Is not a valid number.");

        user_input.next();
    }

    if(user_input.hasNextInt()) {
        input = user_input.nextInt();
    }
    else {
        input = Math.round((float) user_input.nextDouble()); //I assume here that your number is small as you said
    }

    return input;
}

关于java - 检查参数时舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017759/

相关文章:

c++ - C 或 C++ 中的十进制算术?

java - JSP代码中的java.lang.NullPointerException

java - 在哪里可以找到 java.lang native 方法的源代码?

任何人都可以简单地向我解释一下这个功能吗?

javascript - 点后如何在 javascript 无限数字中做四舍五入?

ios - 没有 * 候选人产生预期的结果类型 FloatingPointRoundingRule

javascript - 如何在 JavaScript 中四舍五入到最接近的整数

Java批量邮件异常处理

java - 将图像加载到 JLabel 中不起作用

Java 10 可执行文件在安装后不会执行