2009-09-02 81 views
39

我不是數學和C#,偉大的似乎沒有提供電源的功能 所以我想知道如果任何人知道我怎麼會跑這樣的計算:如何計算C#中的權力?

var dimensions = ((100*100)/(100.00^3.00)); 
+0

所以'VAR尺寸= 1.0F/100 '? :) – CompuChip 2017-06-04 13:55:12

回答

55

參見Math.Pow。該函數的值,並把它舉到指定的電源:

Math.Pow(100.00, 3.00); // 100.00^3.00 
+0

感謝這是最後的計算: var dimensions =(100 * 100)/(Math.Pow(100.00,3.00)); – davethecoder 2009-09-02 09:37:39

7

你想要的功能是System.MathMath.Pow

1

不要使用Math.Pow

當我使用

for (int i = 0; i < 10e7; i++) 
{ 
    var x3 = x * x * x; 
    var y3 = y * y * y; 
} 

只需要230毫秒,而下面以令人難以置信的7050毫秒:

for (int i = 0; i < 10e7; i++) 
{ 
    var x3 = Math.Pow(x, 3); 
    var y3 = Math.Pow(x, 3); 
} 
+0

好,我們都期待Math.Pow會變慢。但不是那麼多。爲什麼?現在讓我們做家庭作業,並檢查**編譯器生成的代碼**(JIT之後的cs和assembly)是什麼,您可能會感到驚訝。嘗試... – 2017-06-04 13:42:34

+0

我要重做這一個https://github.com/THEjoezack/ColorMine/tree/master/ColorMine/ColorSpaces,因爲有'x * x * x'之類的東西,雖然我可以使用' x^3',所以我嘗試了'Math.Pow' 在math.cs的參考源中我發現了這一個 'public static extern double Pow(double x,double y);' 所以我無法查看代碼,我錯了什麼? – 2017-06-04 13:47:14

+0

我應該在那裏找到什麼? – 2017-06-04 14:08:11