我创建了一个将摄氏温度转换为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类的方法中
答案 0 :(得分:11)
因为您正在制作 integer division 。将您的代码更改为
public double ConvertToFahrenheit()
{
return 9.0 / 5 * ValueToBeConverted + 32;
}
public double ConvertToCelsuis()
{
return 5.0 / 9 * (ValueToBeConverted - 32);
}