对属性的算术运算

时间:2013-08-08 18:54:26

标签: c#

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

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类的方法中

1 个答案:

答案 0 :(得分:11)

因为您正在制作 integer division 。将您的代码更改为

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

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