01/10/2018, 09:56
Đoạn code C++ về kiểu dữ liệu
Hi mọi người, mình có đoạn code sau, Bạn nào có thể giải thích giúp mình được không?
Kết quả in ra là:
Bye
Hello
#include <stdio.h>
int main()
{
// Kiểu float
float a = 0.7;
if(a == 0.7)
printf("Hello
");
else
printf("Bye
");
// Kiểu double
double b = 0.7;
if(b == 0.7)
printf("Hello");
else
printf("Bye");
return 0;
}
Bài liên quan
float chỉ đúng dạng mức độ đơn => khi so sánh 2 số float , nó sẽ sai lúc này sẽ là 0.6999999 mà ko phải là 0.7
double đúng mạng mức độ kép => khi so sánh nó sẽ đúng chính xác 0.7
mà code này là C bạn nhé , ko phải C++
Hi bạn,
Mình cũng biết là float có độ chính xác đơn, còn double có độ chính xác kép, nhưng không hiểu đơn với kép nó như thế nào? Phải chăng là cách nó lưu các giá trị nhị phân trong bộ nhớ.
Code trên là C nhưng mình viết trên file CPP vẫn được bạn, vì C++ bao hàm luôn C trong đó
Từ khóa là IEEE-754 và dù gì thì đây vẫn là code C.
Thanks 2 bạn nhiều nhé. Mình đi coi lại cái vụ lưu các giá trị chấm động trong bộ nhớ.
khi so sánh hai số thức có bằng nhau hay không mình thường làm thế này:
Thanks bạn. Bạn đưa ra một cái rất hay đó!