【问题标题】:C# double value displaying incorrect value [duplicate]C#双值显示不正确的值[重复]
【发布时间】:2021-11-02 13:12:39
【问题描述】:

您好,我正在练习 C$,特别是十进制数值。我有这个简单的程序只是为了检查输入的数据是否正确。我输入 12.9 但得到 49。任何帮助将不胜感激。

static void Main(string[] args)
        {
            Console.Write("Enter the first number 1: ");
            double num1 = Console.Read();
            Console.Write(num1);
            //Console.WriteLine(num1+" + "+num2+" + "+num3 + " = "+total);
        }

【问题讨论】:

  • Console.Read 不会按照你的想法去做。它返回按下的键的字符代码('1' = Ascii 49)。您需要使用 Console.ReadLine 然后解析输入,将其转换为双精度

标签: c# variables double add


【解决方案1】:

您需要使用Console.ReadLine() 而不是Console.Read()

Read 方法 - 从标准输入流中读取下一个字符。

ReadLine 方法 - 从标准输入流中读取下一行字符。

试试这个:

static void Main(string[] args)
{
    Console.Write("Enter the first number 1: ");

    // It might cause an error if the user doesn't write a number 
    // which is parsable to double
    double num1 = double.Parse(Console.ReadLine());
    Console.Write(num1);
}

或者一个安全的方法:

static void Main(string[] args)
{
    Console.Write("Enter the first number 1: ");

    // You may also ask the user to write again an input of number.
    if (double.TryParse(Console.ReadLine(), out double num1))
    {
        Console.Write(num1);
    }
}

【讨论】:

  • 这里不要挑剔,但实际上您不应该教在用户输入值上使用 Parse。
猜你喜欢
  • 2023-03-28
  • 2017-10-18
  • 1970-01-01
  • 2014-06-01
  • 2012-05-24
  • 1970-01-01
  • 2019-06-18
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多