C++ float的if比较

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ float的if比较相关的知识,希望对你有一定的参考价值。

使用MFC;

void CIftestView::OnDraw(CDC* pDC)

	CIftestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	float f = 0.1; 
	if (f == 0.1) 
		pDC->TextOut(20,20,"True");
	else 
		pDC->TextOut(20,50,"False");

	float f2 = 0.1; 
	if (f2 == (float)0.1) 
		pDC->TextOut(20,80,"True");
	else 
		pDC->TextOut(20,110,"False");

    f == 0.1无论如何都不是真的? 因为float延伸到double ,而不是相反; 在C中,较小的类型总是延伸到较大的类型; 

以上是关于C++ float的if比较的主要内容,如果未能解决你的问题,请参考以下文章

分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

c++怎么判断两数相等

bool, int, float与零的比较

C语言与C++常见面试题

double类型数值比较的坑

无意中发现一位大佬的 C++ 刷题 pdf 笔记