You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Kotlin代码时出现InputMismatchException,原因是代码还是系统设置?

问题解答

报错原因

这个InputMismatchException既不是代码逻辑问题,也不是系统设置问题,核心原因是你输入的内容无法被解析为有效的Double类型。

Scanner.nextDouble()方法要求输入必须是符合浮点数格式的内容,当输入不符合要求时就会抛出该异常,常见触发场景:

  • 输入了非数字字符(比如字母、中文标点、特殊符号)
  • 输入的小数分隔符和当前系统区域设置不匹配(比如系统默认用逗号,作为小数分隔符,但你输入了点.,或者反过来)

解决办法

  1. 确保输入内容是纯数字格式的浮点数,例如3.14、-2.5这类合法格式
  2. 如果是区域设置导致的小数分隔符问题,可以给Scanner显式指定Locale,强制统一格式:
    修改后的代码如下(需导入java.util.Locale):
    package com.company
    
    import java.util.Scanner
    import java.util.Locale
    
    fun main() {
        val reader = Scanner(System.`in`).useLocale(Locale.US)
        print("Enter your point: ")
        val userInput: Double = reader.nextDouble()
        println("You entered: $userInput")
    }
    

内容的提问来源于stack exchange,提问作者Arman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:39:54