首页 > 解决方案 > C# 给出的值与预期不同

问题描述

我刚开始学习 C#,我遇到了这个问题:代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_CSharp_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter the number: ");
            double num = Console.Read();
            
            Console.WriteLine("Result = " + num*num);
            
        }        
        
    }
}

当我输入: 10 这是输出:

Enter the number:
10
Result = 2401
Press any key to continue . . .

请帮忙。

我使用 Visual Studio 2019(社区版)

标签: c#

解决方案


Console.Read()给你下一个字符值(即:它给你一个有效值char或-1),而不是下一个输入数字的值。

相反,您必须使用Console.ReadLine()并解析它double.TryParse(string, out double)

Console.WriteLine("Enter the number: ");
// Get the next line input
string input = Console.ReadLine();
// Try to parse it as a double
if (double.TryParse(input, out double num)) {
    // On true we have a number
    Console.WriteLine("Result = " + num*num);
} else {
    // On fail we couldn't parse it.
    Console.WriteLine("Error, please input a number.");
}

推荐阅读