我的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);
}
}
}
答案 0 :(得分:13)
你的问题是
f = Console.Read();
它只读取第一个字符,而不是整行输入。试试
f = Convert.ToDouble(Console.ReadLine());
Here's关于Console.Read
与Console.ReadLine()
答案 1 :(得分:3)
Console.Read()
会返回输入流中下一个字符的序数值。
输入流中的第一个字符是'7'
,其序数值为0x0037
。代表十进制,这是55
,(55-32)/1.8
是12.7777
。
您应该使用Console.ReadLine()
而不是Console.Read()
。