2

我创建了一个将摄氏度转换为华氏度的类,反之亦然,这就是我的编码方式:

public class TempConverter
{
    public double ValueToBeConverted { get; set; }

    public TempConverter(double valueToBeConverted)
    {
        ValueToBeConverted = valueToBeConverted;
    }

    public TempConverter()
    {
    }

    public double ConvertToFahrenheit()
    {
        return 9 / 5 * ValueToBeConverted + 32;
    }

    public double ConvertToCelsuis()
    {            
        return 5 / 9 * (ValueToBeConverted - 32);
    }
}

但是 ConvertToFahrenheit() 返回 32 而另一个方法返回 0 无论我传递的值如何。

我在 Main 中所做的只是实例化一个 TempConverter 对象并将要转换的值传递给构造函数。我确实设置了一些断点,并且 ValueToBeConverted 确实得到了我传递给构造函数的值,这最终让我相信问题出在 TempConverter 类的方法中

4

1 回答 1

11

因为您正在进行整数除法。将您的代码更改为

public double ConvertToFahrenheit()
{
    return 9.0 / 5 * ValueToBeConverted + 32;
}

public double ConvertToCelsuis()
{            
    return 5.0 / 9 * (ValueToBeConverted - 32);
}
于 2013-08-08T18:55:44.007 回答