為什麼我在嘗試輸入雙精確度值時遇到 InputMismatchException?
在提供的程式碼中,您遇到了 InputMismatchException,因為 nextDouble( ) 方法未正確處理十進位輸入。
說明:
在您的程式碼中,您有以下行:
num = reader.nextDouble();
此行嘗試使用Scanner 類別的nextDouble()方法從標準輸入讀取雙精度值。但是,當您輸入帶有小數點的雙精度值(例如 1.2)時,系統無法正確解釋該值。
解決方案:
要解決此問題,您應修改您的程式碼以透過更改輸入分隔符號以允許小數分隔符號來處理小數輸入。您可以使用 ,(逗號)作為新的分隔符,而不是使用預設的分隔符(空格),從而允許使用者輸入小數值,例如 1,2。
為此,請使用 useDelimiter 方法在讀取輸入之前掃描物件。以下是修改後的程式碼:
Scanner reader = new Scanner(System.in).useDelimiter(",");
透過進行此更改,nextDouble() 方法將正確解釋十進位輸入,並且您不應再遇到 InputMismatchException。
以上是為什麼從控制台讀取雙精確度值時會收到 InputMismatchException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!