為什麼在取得Double值時會出現InputMismatchException?
在Java中,當使用Scanner讀取Double值時,如果輸入不嚴格遵循預期的十進位格式。
理解問題:
提供的程式碼包含 checkValueWithin 和askForMarks 方法。 checkValueWithin 旨在驗證指定範圍內的數位輸入。
問題出現在askForMarks 方法中,其中使用者輸入預計為 0 到 30 範圍內的雙精度值。但是,輸入可能會被格式化不正確,導致掃描程式在解析雙精度值時失敗。
修正:
可以透過確保使用者輸入的格式使用逗號作為格式來解決小數點分隔符號而不是點。例如,輸入 1,2,而不是 1.2。這與 Java 中的雙精度值表示一致。
以下是 AskForMarks 的修改後的程式碼:
此修改可確保正確輸入雙精確值,從而防止 Scanner 遇到 InputMismatchException。
以上是為什麼在使用掃描器讀取雙精度值時會出現 InputMismatchException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!