C#: 控制台输出无限 (∞)

11

我正在使用 Windows 10 上的 Visual Studio 2015,是一名新手程序员,刚开始学习 C#。在学习过程中,我发现了 Math 类,并尝试着使用它。然而,在控制台输出时,显示了 " ∞ "。

这是一个控制台应用程序。

以下是代码:

var k = Math.Sqrt((Math.Pow(Math.Exp(5), Math.E)));
var l = Math.Sqrt((Math.Pow(Math.PI, Math.E)));
Console.WriteLine("number 1 : " + k);
Console.WriteLine("number 2 : " + l);
Console.ReadKey();
var subject = Math.Pow(Math.Sqrt((Math.Pow(Math.PI, Math.E))), Math.Sqrt((Math.Pow(Math.Exp(5), Math.E))));
Console.WriteLine(k + " ^ " + l + " = " + subject);
Console.ReadKey();
//output  :
/*number 1 : 893.998923601492
 number 2 : 4.73910938029088
 893.998923601492 ^ 4.73910938029088 = ∞*/

为什么会这样?使用普通计算器的结果是:96985953901866.7


1
你正在尝试计算4.7^894,这对于double来说有点太大了。 - Matthew Watson
1个回答

19

因为你正在做的事情

var subject = Math.Pow(l, k);

取代

var subject = Math.Pow(k, l);

你正在对底数和指数进行倒置运算!

你应该尽量重复使用变量,而不是重新计算每个值!(如果您重复使用变量,问题将更加明显。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接