2016-03-21 4 views
11

J'utilise Visual Studio 2015 sur Windows 10, je suis toujours un nouveau codeur, je viens juste d'apprendre le C#, et pendant que j'étais en train de découvert la classe Math et vient se amuser avec elle, jusqu'à ce que la console en sortie: "∞"C#: La sortie de la console est infinie (∞)

il est une application console

Voici le code:

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 = ∞*/ 

Pourquoi est-ce qui se passe? en utilisant la calculatrice normale, le résultat est: 96985953901866,7

+1

Vous essayez de calculer «4,7^894», ce qui est un peu trop grand pour un «double». –

Répondre

19

Parce que vous faites

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

au lieu de

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

Vous inverseuses base avec l'exposant!

Et vous devriez vraiment réutiliser vos variables, au lieu de tout recalculer! (Si vous aviez réutilisé les variables, le problème aurait été plus apparent).