01/10/2018, 14:58

Gặp vấn đề khó hiểu vê ép kiểu trong C++

#include <iostream>
#include <conio.h>
using std::cout;
using std::cin;

int main()
{
	double fn;
	cin>>fn;
	/*while((int)fn != 0)
	{
		cout<<"fn: "<<fn<<std::endl;
		fn = fn -1.0;
		cout<<"fn(-): "<<fn<<std::endl;
		char c = getch();
		if(c == '
')
			continue;
	}*/
	while(fn != 0)
	{
		//cout<<fn<<std::endl;
		cout<<"
(int)fn: "<<(int)fn<<std::endl;
		fn = (fn -(int)fn);
		cout<<"fn(-): "<<fn<<std::endl;
		fn *= 10;
		cout<<"fn*10: "<<fn<<std::endl;
		char c = getch();
		if(c == '
')
			continue;
	}
	return 0;
}

Đáng lẽ cái biến fn nó sẽ dần về 0 nhưng nó không vào được giá trị này khi mình nhập một số thực ví dụ như 5.78, 6.43…v.v nhưng khi nhập một số .0 thì ra. Ví du như nhập 5 hay 5.0 hay 8.0.

rogp10 viết 17:06 ngày 01/10/2018

Không hẳn. https://repl.it/repls/JauntyRecentSuperuser

Bài liên quan
0