为什么我不能从华氏温度转换为摄氏温度?

时间:2014-11-21 14:51:30

标签: c#

我的C#代码一直给我一个错误的转换结果。据我所知,转换公式是正确的,但它仍然显示错误的结果。

例如:70°F给我12,777777°C。你能检查一下我的代码吗?

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

namespace Temperature
{
    class Program
    {    
        class Temperature
        {
            public double temp;

            public void Convert(double value)
            {
                double tEmp;
                tEmp = (value - 32) / 1.8;
                Console.WriteLine("The temperature in °C is :" + tEmp);
                Console.ReadKey();
            }
        }

        static void Main(string[] args)
        {
            double f;
            Temperature c = new Temperature();
            f = Console.Read();
            c.Convert(f);
        }
    }
}

2 个答案:

答案 0 :(得分:13)

你的问题是

f = Console.Read();

它只读取第一个字符,而不是整行输入。试试

f = Convert.ToDouble(Console.ReadLine());

Here's关于Console.ReadConsole.ReadLine()

之间差异的一个很好的答案

答案 1 :(得分:3)

Console.Read()会返回输入流中下一个字符的序数值。

输入流中的第一个字符是'7',其序数值为0x0037。代表十进制,这是55(55-32)/1.812.7777

您应该使用Console.ReadLine()而不是Console.Read()