C#:控制台输出无限(∞)[关闭]

Posted

技术标签:

【中文标题】C#:控制台输出无限(∞)[关闭]【英文标题】:C#: The console is outputting infinite (∞) [closed] 【发布时间】:2016-07-07 18:16:22 【问题描述】:

我在 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

【问题讨论】:

您正在尝试计算 4.7^894,这对于 double 来说有点太大了。 【参考方案1】:

因为你在做

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

而不是

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

你正在用指数反转底数!

而且您应该真正重用您的变量,而不是重新计算所有内容! (如果你重用变量,问题会更明显)。

【讨论】:

以上是关于C#:控制台输出无限(∞)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

想问下C#控制台输出可以居中吗

C# WinForm中截获Console输出

关于C#输入和输出的语句,控制台

C# - 实时控制台输出重定向

从 .NET 应用程序 (C#) 捕获控制台输出

C# 如何改变控制台输出字体颜色