Kiểu dữ liệu long double

Đề bài kiểm tra số chính phương.
Vì sao ở dòng code này lại sd Long double ở dòng 5 ạ? Em chưa hiểu lắm ạ mong mn giúp đỡ.

// CPP program to find if x is a
// perfect square.
#include <bits/stdc++.h>
using namespace std;

bool isPerfectSquare(long double  x) //dòng này

{
// Find floating point value of
// square root of x.

if (x >= 0) {      

long long sr = sqrt (x);
 // if product of square root

//is equal, then
// return T/F

return (sr * sr == x);
}

// else return false if n<0
return false
}

 

int main()

{

long long x = 2500;

if (isPerfectSquare(x))

cout << "Yes";

else
cout << "No";

return 0;

}

Bản dịch wiki của Google:

Trong C và các ngôn ngữ lập trình liên quan, long double dùng để chỉ loại dữ liệu dấu phẩy động thường chính xác hơn độ chính xác kép mặc dù tiêu chuẩn ngôn ngữ chỉ yêu cầu nó ít nhất phải chính xác như gấp đôi. Cũng như các loại dấu phẩy động khác của C, nó có thể không nhất thiết phải ánh xạ sang định dạng IEEE.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?