tôi có chức năng tiếp theo:C# isPowerOf chức năng
static bool isPowerOf(int num, int power)
{
double b = 1.0/power;
double a = Math.Pow(num, b);
Console.WriteLine(a);
return a == (int)a;
}
tôi chèn các chức năng in để phân tích.
Nếu tôi gọi hàm:
isPowerOf(25, 2)
Nó trở thành sự thật kể từ 5^2
bằng 25. Nhưng, nếu tôi gọi 16.807, đó là 7^5
, cách tiếp theo:
isPowerOf(16807, 5)
Trong này trường hợp, nó in '7' nhưng a == (int)a
trả về false.
Bạn có thể trợ giúp không? Cảm ơn!
Liên kết bắt buộc với [Điều mà mọi nhà khoa học máy tính cần biết về số học dấu chấm động] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) – AakashM
Mọi người sẽ đề xuất tốt hơn so sánh điểm trôi nổi, nhưng IMO gốc của vấn đề là thuật toán ở đây. – harold