Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';我不能把华氏温度转换成摄氏温度吗?_C# - Fatal编程技术网

C# 为什么可以';我不能把华氏温度转换成摄氏温度吗?

C# 为什么可以';我不能把华氏温度转换成摄氏温度吗?,c#,C#,我的C#代码不断返回错误的转换结果。据我所知,转换公式是正确的,但它总是显示错误的结果 e、 g:70华氏度给我12777777摄氏度。你能查一下我的代码吗 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Temperature { class Program {

我的C#代码不断返回错误的转换结果。据我所知,转换公式是正确的,但它总是显示错误的结果

e、 g:70华氏度给我12777777摄氏度。你能查一下我的代码吗

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);
        }
    }
}
你的问题是

f = Console.Read();
它只读取第一个字符,而不是整个输入行。试一试

f = Convert.ToDouble(Console.ReadLine());
关于
Console.Read
Console.ReadLine()

Console.Read()
返回输入流中下一个字符的序号值之间的差异,这是一个很好的答案

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


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

你期望得到什么结果?公式是
(°F-32)x 5/9=°C
@patrickhoffman有什么区别?@eldardorzhiev:只适用于那些不每天都这样做的人。“像我一样。”戴维费南说。如果您尝试运行此程序,您将得到所描述的结果。但是,只需在
Convert
内设置断点并查看
value
是什么,就可以解决此问题。正确,这是问题的根源,但是您应该解释为什么
Console.Read
of
70
给出的是
12.78
而不是
21.11
Console.Read返回一个Int32,它表示读取的单个字符或-1。再见,谢谢。我不知道“Convert.ToDouble”方法。