使用Math.Pow时出现“无法将双精度浮点数转换”错误

ng8*_*92a -2 c# compiler-errors exponential

我有以下几点:

        int val1 = 2;
        float val2 = (float)val1;

        decimal val3 = 3.2m;
        float val4 = (float)val3;

        float Result2 = Math.Pow(val4, val2);
Run Code Online (Sandbox Code Playgroud)

在我看来,val4和val2都属于float类型。但是我每次在Math.Pow上都会收到一个错误,表明它无法将double类型转换为隐式类型float。我想我正确地投射了所有内容,是否缺少了某些内容?

Rah*_*thi 5

Math.Pow接受两个double参数并返回double-没有从double到float的隐式转换。而且您不能将double放入float变量中,因此需要类型转换以使其浮动。

您可以尝试以下方法:

float Result2= (float)Math.Pow(val4, val2);
Run Code Online (Sandbox Code Playgroud)

  • @JeroenVannevel:-的确如此。更新了我的答案。谢谢 :) (2认同)