Loading Now

Kiểu số thực (float và double) trong C++

Kiểu số thực (float và double) trong C++

Bài tập

Bạn hãy viết chương trình tạo ra 2 biến a, b kiểu số thực. Sau đó gán giá trị cho a = 10.5, b = 7 và thực hiện hiển thị ra màn hình:

a / b = {P}

Với {P} là thương của ab ({P} là kết quả của phép chia: a / b).

Lý thuyết

Kiểu dữ liệu số trong C++ được chia làm 2 loại là kiểu số nguyên và kiểu số thực. Để khai báo và gán giá trị cho biến kiểu số thực bạn dùng từ khóa double:

// Khai báo biến a kiểu số thực và gán giá trị cho a = 10.5
double a = 10.5;

Ví dụ chương trình tạo và hiển thị biến kiểu số thực ra màn hình:

#include<iostream>

using namespace std;

int main() {
	// Khai báo biến a kiểu số thực và gán giá trị cho a = 1.5
	double a = 1.5;
	cout << "a = " << a;
	return 0;
}

Kết quả khi chạy chương trình:

a = 1.5

Ngoài double ra thì bạn cũng có thể dùng float để khai báo biến kiểu số thực nhưng trong hầu hết mọi trường hợp bạn nên sử dụng kiểu double.

Lưu ý: nếu bạn dùng biến kiểu số nguyên để lưu trữ các số thực thì kết quả thu được sẽ chỉ có phần nguyên. Ví dụ chương trình sau:

#include<iostream>

using namespace std;

int main() {
	int a = 1.5;
	int pi = 3.14;
	cout << "a = " << a << endl;
	cout << "pi = " << pi << endl;
	return 0;
}

Kết quả khi chạy chương trình:

a = 1
pi = 3

Do đó, nếu bài này bạn khai báo biến a và biến b với kiểu int giống chương trình sau:

#include<iostream>

using namespace std;

int main() {
	int a = 10.5;
	int b = 7;
	cout << "a / b = " << a / b;
	return 0;
}

Thì kết quả khi sẽ chương trình sẽ là:

a / b = 1

Giải thích: ban đầu bạn khởi tạo giá trị cho biến a10.5 nhưng do a là biến kiểu int nên giá trị của a sẽ là 10. Do đó, a / b bản chất sẽ là 10 / 7 và kết quả sẽ phải là 1.42857 nhưng chương trình lại hiển thị 1 ra màn hình do kết quả của phép chia 2 số nguyên sẽ là 1 số nguyên => 1.42857 sẽ bị chuyển về 1. Để màn hình hiển thị được 1.42857 bạn cần ép kiểu của phép chia về double giống chương trình sau:

#include<iostream>

using namespace std;

int main() {
	int a = 10.5;
	int b = 7;
	cout << "a / b = " << (double)a / b;
	return 0;
}

Kết quả khi chạy chương trình:

a / b = 1.42857

Trong đó, (double)a / b nghĩa là thực hiện ép kiểu cho giá trị của biến a về double, sau đó thực hiện chia a cho b. Lúc này, phép chia 1 số kiểu double và 1 số kiểu int sẽ là 1 số kiểu double nên kết quả sẽ là 1.42857.

Bạn cũng có thể ép kiểu cho biến kiểu double về kiểu int giống như sau:

#include<iostream>

using namespace std;

int main() {
	double pi = 3.14;
	cout << (int)pi;
	return 0;
}

Đọc tới đây bạn đã hiểu về cách khai báo biến kiểu số thực, hãy quay lại phần bài tập và làm thử.

Hướng dẫn

Code mẫu:

#include<iostream>

using namespace std;

int main() {
	double a = 10.5;
	double b = 7;
	cout << "a / b = " << a / b;
	return 0;
}

Do 7 là một số nguyên nên bạn cũng có thể khai báo biến b với kiểu int thay vì double giống như sau:

#include<iostream>

using namespace std;

int main() {
	double a = 10.5;
	int b = 7;
	cout << "a / b = " << a / b;
	return 0;
}

Post Comment

Contact