如何计算C#的功率?

dav*_*der 48 c# math

我对数学并不是那么好,而且C#似乎没有提供强大的功能,所以我想知道是否有人知道如何运行这样的计算:

var dimensions = ((100*100) / (100.00^3.00));
Run Code Online (Sandbox Code Playgroud)

Pau*_*ner 69

Math.Pow.该函数接受一个值并将其提升到指定的幂:

Math.Pow(100.00, 3.00); // 100.00 ^ 3.00
Run Code Online (Sandbox Code Playgroud)


Dan*_*ner 16

您正在寻找静态方法Math.Pow().


H. *_*lyn 12

我回答这个问题是因为我没有找到任何答案为什么它^不适用于权力。^C# 中的运算符是异运算符,缩写为XOR的真值表表明A ^ B,只要输入不同,它就会输出 true :

输入A 输入B 输出
0 0 0
0 1 1
1 0 1
1 1 0

女巫意味着100 ^ 3在幕后进行此计算:

decimal   binary
    100 = 0110 0100 
      3 = 0000 0011
    ---   --------- ^
    103 = 0110 0111
Run Code Online (Sandbox Code Playgroud)

Math.Pow(100, 3)当然跟一百万的结果不一样。您可以使用该答案或其他现有答案之一。


您还可以将代码缩短为给出相同结果的代码,因为 C# 尊重操作顺序

double dimensions = 100 * 100 / Math.Pow(100, 3); // == 0.01
Run Code Online (Sandbox Code Playgroud)


Aak*_*shM 7

你想要的功能是Math.PowSystem.Math.


小智 5

不使用Math.Pow

当我使用

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

它只需要 230 毫秒,而以下则需要令人难以置信的 7050 毫秒:

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

  • 您的版本更快,因为您的版本仅使用整数,例如您会如何执行“x^x”? (4认同)