C# 无法使用Math.Pow()将类型“double”隐式转换为“float”

C# 无法使用Math.Pow()将类型“double”隐式转换为“float”,c#,C#,您好,我正在计算未来金额的现值,但在我不断得到的公式中,无法将类型“double”隐式转换为“float”。存在显式转换。是否缺少强制转换?我不确定如何修复此问题。 任何帮助都将不胜感激 public static float PresentValue(float futureValue, float rate, int years) { float presentValue; presentValue = futureValue / Math

您好,我正在计算未来金额的现值,但在我不断得到的公式中,无法将类型“double”隐式转换为“float”。存在显式转换。是否缺少强制转换?我不确定如何修复此问题。 任何帮助都将不胜感激

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

          return presentValue;
   }
变量是float,但方法Math.Pow返回一个double。因此,需要对方法的结果执行显式转换

presentValue = futureValue / (float)Math.Pow(1 + rate, years);
注意:Math.Pow也使用double作为参数,但仍然有效。这是因为隐式转换正在发生。因为double可以表示浮点的所有可能值,但reverse不是真的


阅读有关隐式和显式转换的内容

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

(float)Math.Round(amount);

错误消息说明了很多。。