为什么我在尝试输入双精度值时遇到 InputMismatchException?
在提供的代码中,您遇到了 InputMismatchException,因为 nextDouble( ) 方法未正确处理十进制输入。
说明:
在您的代码中,您有以下行:
num = reader.nextDouble();
此行尝试使用 Scanner 类的 nextDouble() 方法从标准输入读取双精度值。但是,当您输入带小数点的双精度值(例如 1.2)时,系统无法正确解释该值。
解决方案:
要解决此问题,您应修改您的代码以通过更改输入分隔符以允许小数分隔符来处理小数输入。您可以使用 ,(逗号)作为新的分隔符,而不是使用默认的分隔符(空格),从而允许用户输入小数值,例如 1,2。
为此,请使用 useDelimiter 方法在读取输入之前扫描对象。以下是修改后的代码:
Scanner reader = new Scanner(System.in).useDelimiter(",");
通过进行此更改,nextDouble() 方法将正确解释十进制输入,并且您不应再遇到 InputMismatchException。
以上是为什么从控制台读取双精度值时会收到 InputMismatchException?的详细内容。更多信息请关注PHP中文网其他相关文章!