2009-09-02 11 views
39

Nie jestem aż tak wielkie z matematyki i C# nie wydaje się, aby zapewnić zasilanie-funkcji więc zastanawiałem się, czy ktoś wie, w jaki sposób mogę uruchomić obliczenia takiego:Jak obliczyć moc-of w C#?

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

Więc 'wymiary var = 1.0f/100 '? :) – CompuChip

Odpowiedz

55

Zobacz Math.Pow. Funkcja przyjmuje wartość i podnosi go do określonej mocy:

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

dzięki temu dokonano ostatecznego obliczenia: var dimensions = (100 * 100)/(Math.Pow (100,00, 3,00)); – davethecoder

7

funkcja chcesz to Math.Pow w System.Math.

1

Nie używaj Math.Pow

Gdy używam

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

To trwa tylko 230 ms, podczas gdy po wykonuje niesamowite 7050 MS:

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

Dobrze, wszyscy oczekiwaliśmy Math.Pow być wolniej. Ale nie za dużo. Czemu? Teraz zróbmy pracę domową i sprawdźmy, jaki jest ** kod generowany przez kompilator ** (zarówno cs jak i montaż po JIT) i możesz być zaskoczony. Spróbuj ... –

+0

Zamierzałem przerobić ten jeden https://github.com/THEjoezack/ColorMine/tree/master/ColorMine/ColorSpaces, ponieważ istnieje coś takiego jak 'x * x * x', w którym chociaż mógłbym użyć' x^3', czego nie mogłem, więc spróbowałem 'Math.Pow' W źródle odniesienia math.cs znalazłem ten jeden ' public static extern double Pow (double x, double y); ' Tak więc nie mogłem zajrzeć do kodu, co mi się nie podobało? –

+0

Co powinienem tam znaleźć? –