2016-03-21 12 views
11

私はWindows 10でVisual Studio 2015を使用しています。私はまだ新しいコーダーです。私はC#を学び始めました。コンソールが出力されるまで、Mathクラスを発見し、それを楽しんでました:「∞」 C#:コンソールが出力しています

このコンソールアプリケーションここ

コードですです:

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 'には大きすぎます。 –

答えて

19

あなたはあなたが指数をベースに反転している代わりに

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

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

をやっているので!

そして、すべてを再計算する代わりに、実際に変数を再利用する必要があります。 (変数を再利用した場合、問題はより明らかになりました)。