Float和Double值在c 中造成混淆

我正在运行这个程序。 但得到奇怪的结果。

int main() { float a=.8; if(a < .8) printf("a is small\n"); else printf("a is not small\n"); float b=.7; if(b < .7) printf("b is small\n"); else printf("b is not small\n"); return 0; } 

它给了我输出 –

一个不小

b很小

你为什么不用0.7f0.7默认情况下是double ,所以我们无法预测它的行为