2016-03-21 15 views
11

Tôi đang sử dụng Visual Studio 2015 trên Windows 10, tôi vẫn là người lập trình mới, tôi mới bắt đầu học C# và trong quá trình tôi đang thực hiện phát hiện ra lớp Math và chỉ có vui vẻ với nó, cho đến giao diện điều khiển xuất ra: "∞"C#: Bàn điều khiển xuất ra infinte (∞)

đó là một ứng dụng điều khiển

Dưới đây là các mã:

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

Tại sao điều này xảy ra? sử dụng máy tính bình thường kết quả là: 96985953901866,7

+1

Bạn đang cố gắng tính toán '4,7^894', hơi quá lớn đối với' double' để đối phó với. –

Trả lời

19

Bởi vì bạn đang làm

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

thay vì

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

Bạn đang đảo ngược cơ sở với số mũ!

Và bạn thực sự nên sử dụng lại các biến của mình, thay vì tính toán lại mọi thứ! (bạn đã tái sử dụng các biến, vấn đề sẽ rõ ràng hơn).

Các vấn đề liên quan