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

C#使用Console.Read读取输入赋值给double变量显示值异常求助

问题根源

  • 你使用的Console.Read()方法仅读取输入流中的第一个字符,返回值为该字符对应的ASCII编码整数值。你输入12.9时第一个字符是'1',它的ASCII码恰好为49,你将该整数值直接赋值给double类型变量后输出,自然得到49的结果。
  • Console.Read()不会读取完整的输入数值,也不会自动完成字符串到数值的类型转换,不符合你读取十进制数值的使用需求。

修正代码

改用Console.ReadLine()读取完整的一行输入内容,再通过类型转换方法把输入字符串转为double类型即可:

static void Main(string[] args)
{
    Console.Write("Enter the first number 1: ");
    // 读取整行输入后转换为double类型
    double num1 = Convert.ToDouble(Console.ReadLine());
    Console.Write(num1);
    //Console.WriteLine(num1+" + "+num2+" + "+num3 + " = "+total);
}

如果需要兼容非法输入场景,避免用户输入非数值内容导致程序崩溃,推荐用double.TryParse做安全校验:

static void Main(string[] args)
{
    Console.Write("Enter the first number 1: ");
    string input = Console.ReadLine();
    double num1;
    if (double.TryParse(input, out num1))
    {
        Console.Write(num1);
    }
    else
    {
        Console.WriteLine("输入不是合法的数值");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:57:03