none
Math.Pow方法计算结果出错…… RRS feed

  • 问题

  • 我用的VS2005 C#

    在使用Math.Pow(225,7)来计算的时候,结果为29192926025390624

    其他255、205等作为底数计算7次方的时候,结果也都不对……求解

    2010年12月22日 4:42

答案

全部回复

  • 您好

    主要是因為 Math.Pow 回傳結果是 double,請參考 C# Math.Pow is not calculating correctly

    嘗試看看以下程式碼,您會看到差異

          double a = Math.Pow(225, 7);
          float b = (float)Math.Pow(225, 7);
    
          Func<long, int, long> power = null;
          power = (i, p) => p == 1 ? i : i * power(i, p - 1);
          float c = power(15, 14); 

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 eryang 2010年12月29日 10:03
    2010年12月22日 5:21
  • 我想知道如何解决这类问题,连最基本的乘方都算不对……怎么编程序啊……,biginteger好像是.net4里面的,我现在是2……就不能解决了吗?

    2010年12月22日 5:37
  • 你好

    如果Math.Pow(),实在不行的话,我觉你可以考虑用for循环,去得到这个值。

          ulong x = 225;
          ulong y = 7;
          ulong a = 1;
          for (ulong i = 0; i < y-1; i++)
          {
            a = x * a;
          }
          Console.WriteLine(a);
          Console.ReadLine();
    

    Cookie Luo[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2010年12月23日 5:53