无法隐式转换类型' double'到'漂浮'与Math.Pow()

时间:2015-06-08 01:00:53

标签: c#

嗨,我正在计算未来金额的现值,但在我的公式中,我一直得到不能隐含地转换类型' double'到了'漂浮'。存在显式转换(您是否错过了演员?)。我不确定如何解决这个问题。 任何帮助将不胜感激

   public static float PresentValue(float futureValue, float rate, int years)
   {
          float presentValue;
          presentValue = futureValue / Math.Pow(1 + rate, years);

          return presentValue;
   }

2 个答案:

答案 0 :(得分:1)

您的变量为float,但方法Math.Pow会返回double。因此,您需要对方法的结果执行显式转换。

presentValue = futureValue / (float)Math.Pow(1 + rate, years);

注意:Math.Pow也会将double作为参数,但仍然有效。那是因为隐式转换正在发生。因为double可以代表float的每个可能值,但反之则不正确。

了解ImplicitExplicit次转化

答案 1 :(得分:0)

我尝试下面代码并为我工作:

(float)Math.Round(amount);