在我的程序中,我有几个需要与0比较的浮点变量。这些变量是通过printf读入的。
float a;
scanf("%f", &a);
if (a=0)
{
printf("a is zero");
return 0;
}
但是当我通过scanf给出0时,它不起作用。不显示“a为零”。它不适用于(a = 0.0)并且不适用于(a = 0.0f)或(a = 0。)。我设法做到的唯一方法是(0 <&amp;&amp; a&lt; 0.0000000000001)
但我觉得这不是一个很好的方法。
我做错了什么?为什么它不能识别我输入的0xf为0?
答案 0 :(得分:1)
只需将“=”更改为“==”即可。您可以将“if”语句写入以下样式:
if (CONSTANT == variable)
答案 1 :(得分:0)
如果条件,则将赋值运算符(=)更改为比较运算符(==)。
除此之外,在比较值
时进行类型转换if (a==(float)0)