方法保持返回0

时间:2014-11-24 00:11:19

标签: c# return-value

我试图让Celsius以华氏温度为参数,然后以摄氏温度返回温度

class Exercise1
{
    static void Main(string[] args)
    {
        double fahrenheit; 
        Console.WriteLine("Enter farenheit: ");
        fahrenheit = double.Parse(Console.ReadLine());

        double cels;

        Exercise1 me = new Exercise1();
        cels = me.Celsius(fahrenheit);

        Console.WriteLine(cels);
    }

    public double Celsius(double fahrenheit)
    {
        double celsius;
        celsius = 5 / 9 * (fahrenheit - 32);
        return celsius;
    }

2 个答案:

答案 0 :(得分:2)

您的Celsius函数中的问题是整数除法。这一行

    celsius = 5 / 9 * (fahrenheit - 32);

将永远为0,因为5/9将被分为整数,这将总是给你0.要强制浮点除法,如果你的整数必须是双精度则为1。所以这样做:

    celsius = 5.0 / 9 * (fahrenheit - 32);

注意5.0会强制进行浮点除法。

答案 1 :(得分:0)

5 / 9将被视为整数,因此在这种情况下使整个计算成为整数数学。

意味着您实际上正在获得0 * (fahrenheit - 32)

将5和9中的一个或两个强制转换为双精度以强制浮点数学。