我是c#的新手,我想知道为什么我尝试做的事不起作用。
private int equation;
public int Equation { get => equation; set => equation = value; }
public void GainCaloriesMale(User user)
{
Equation = ((10 * user.Weight) + (6.25 * user.Height) - (5 * user.Age) + 5) + 250 + add;
Console.WriteLine("\nBased on the Mifflin – St Jeor Formula You need to eat {0} Kalories a day To Gain Weight ", equation);
}
错误CS0266无法将类型'double'隐式转换为'int'。一个 存在显式转换(您是否缺少演员表?)
方程式后的所有内容都以红色加下划线。
谢谢你。
答案 0 :(得分:2)
您正在将int
与 6.25 相乘,这是一个double
文字,它会将右侧表达式的类型转换为双精度型。
您必须按如下所示明确地进行投射。这将删除表达式结果的小数部分。
Equation =(int) ((10 * user.Weight) + (6.25 * user.Height) - (5 * user.Age) + 5) + 250 + add;
或者您也可以选择将变量equation
的类型也更改为两倍。