
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 a
và b
({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 a
là 10.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