嗨,我正在计算未来金额的现值,但在我的公式中,我一直得到不能隐含地转换类型' double'到了'漂浮'。存在显式转换(您是否错过了演员?)。我不确定如何解决这个问题。 任何帮助将不胜感激
public static float PresentValue(float futureValue, float rate, int years)
{
float presentValue;
presentValue = futureValue / Math.Pow(1 + rate, years);
return presentValue;
}
答案 0 :(得分:1)
您的变量为float
,但方法Math.Pow
会返回double
。因此,您需要对方法的结果执行显式转换。
presentValue = futureValue / (float)Math.Pow(1 + rate, years);
注意:Math.Pow
也会将double
作为参数,但仍然有效。那是因为隐式转换正在发生。因为double
可以代表float
的每个可能值,但反之则不正确。
了解Implicit
和Explicit
次转化
答案 1 :(得分:0)
我尝试下面代码并为我工作:
(float)Math.Round(amount);